Nếu tôi muốn mảng kết xuất của mình cho Drupal biết rằng nó sẽ được xây dựng lại khi, giả sử, nút 1 thay đổi, tôi có thể làm điều gì đó như thế này:
$my_render_array = [
...
'#cache' => [
'thẻ' => [
'nút:1',
],
],
];
Làm cách nào tôi có thể nói với Drupal rằng mảng kết xuất của tôi sẽ được xây dựng lại khi biến trạng thái foo
thay đổi?
Tôi đã thử điều này nhưng nó không hoạt động:
$my_render_array = [
...
'#cache' => [
'thẻ' => [
'trạng thái: foo',
],
],
];
Đang chạy:
thanh drush sset foo
Không kích hoạt việc vô hiệu hóa bộ đệm của tôi.
Hiện tại, đây là quy trình gồm hai bước đối với tôi, tôi cần làm một việc như sau:
$my_render_array = [
...
'#cache' => [
'thẻ' => [
'some_custom_tag_that_i_invented',
],
],
];
thanh drush sset foo
drush php "\Drupal::service('cache_tags.invalidator')->invalidateTags(['some_custom_tag_that_i_invented'])"
Lõi Drupal dường như sử dụng các thẻ bộ đệm ở dạng "trạng thái:...", mặc dù không nhiều và chỉ trong các thử nghiệm tự động:
# grep -R lõi 'invalidateTags'|trạng thái grep
lõi/mô-đun/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
# grep -R 'trạng thái:jsonapi__entity_test_filter_access_blacklist' lõi
lõi/mô-đun/jsonapi/kiểm tra/src/Functional/EntityTestTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
lõi/mô-đun/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
lõi/mô-đun/jsonapi/tests/src/Functional/CommentTest.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
lõi/mô-đun/jsonapi/src/Access/TemporaryQueryGuard.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);
# grep -R 'jsonapi__entity_test_filter_access_blacklist' lõi
lõi/mô-đun/jsonapi/kiểm tra/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()]);
lõi/mô-đun/jsonapi/tests/src/Functional/CommentTest.php: Cache::invalidateTags(['state:jsonapi__entity_test_filter_access_blacklist']);
lõi/mô-đun/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', []);
lõi/mô-đun/jsonapi/src/Access/TemporaryQueryGuard.php: $cacheability->addCacheTags(['state:jsonapi__entity_test_filter_access_blacklist']);