Dacă vreau ca matricea mea de randare să îi indice lui Drupal că ar trebui reconstruită atunci când, de exemplu, nodul 1 se schimbă, pot face ceva de genul acesta:
$my_render_array = [
...
'#cache' => [
'etichete' => [
„nodul:1”,
],
],
];
Cum pot să-i spun lui Drupal că matricea mea de randare ar trebui să fie reconstruită când variabila de stare foo
schimbări?
Am incercat asta dar nu merge:
$my_render_array = [
...
'#cache' => [
'etichete' => [
„state:foo”,
],
],
];
Alergare:
drush sset foo bar
Nu declanșează o invalidare a memoriei cache.
În acest moment, acesta este un proces în doi pași pentru mine, trebuie să fac ceva de genul acesta:
$my_render_array = [
...
'#cache' => [
'etichete' => [
„some_custom_tag_that_i_invented”,
],
],
];
drush sset foo bar
drush php "\Drupal::service('cache_tags.invalidator')->invalidateTags(['some_custom_tag_that_i_invented'])"
Core Drupal pare să folosească etichete cache sub forma „state:...”, deși nu mult și numai în cadrul testelor automate:
# grep -R 'invalidateTags' core|grep stare
core/modules/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
# grep -R „state:jsonapi__entity_test_filter_access_blacklist” de bază
core/modules/jsonapi/tests/src/Functional/EntityTestTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/tests/src/Functional/CommentTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/src/Access/TemporaryQueryGuard.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
# grep -R „jsonapi__entity_test_filter_access_blacklist” de bază
core/modules/jsonapi/tests/src/Functional/EntityTestTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/tests/src/Functional/CommentTest.php: \Drupal::state()->set('jsonapi__entity_test_filter_access_blacklist', [$this->entity->getCommentedEntityId()]);
core/modules/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/tests/src/Functional/CommentTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
core/modules/jsonapi/src/Access/TemporaryQueryGuard.php: $blacklist = \Drupal::state()->get('jsonapi__entity_test_filter_access_blacklist', []);
core/modules/jsonapi/src/Access/TemporaryQueryGuard.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);