Dưới đây là cách sử dụng thẻ bộ đệm trong ngữ cảnh của các khối tùy chỉnh mà tôi đã thử và hoạt động nhưng tôi nghĩ nó áp dụng cho các bối cảnh khác
Sử dụng thẻ drupal mặc định
Trong mảng xây dựng, bạn có thể chỉ định cache > tags > node_list
và nội dung khối này sẽ bị vô hiệu (được làm mới) khi BẤT K N NODE nào bị thay đổi mà không phải làm gì khác
public function build() {
return array(
'#markup' => MY_MODULE_awesome_dynamic_node_content(),
'#cache' => [
'tags' => ['node_list'], //invalidate when any node updates
//'tags' => ['node:1','term:2'], //invalidate when node 1 or term 2 updates
],
);
}
Ngoài ra, bạn có thể đặt một hoặc nhiều ID nút / thuật ngữ / người dùng để vô hiệu hóa mảng trên các nút hoặc thuật ngữ cụ thể như được hiển thị trong nhận xét mã ở trên. Lưu ý: bạn có thể trộn và khớp các nút, thuật ngữ, người dùng và thẻ tùy chỉnh khi bạn thấy phù hợp.
Sử dụng thẻ của riêng bạn
nếu bạn muốn có cách xóa mảng xây dựng của riêng mình, hãy thêm thẻ duy nhất tùy chỉnh của bạn vào mảng xây dựng (bất kỳ chuỗi duy nhất nào cũng được)
public function build() {
return array(
'#markup' => MY_MODULE_awesome_dynamic_node_content(),
'#cache' => [
'tags' => ['MY_CUSTOM_UNIQUE_TAG'],
],
);
}
và trong cuộc gọi logic mã tùy chỉnh invalidateTags
của bạn với thẻ của riêng bạn
function MY_MODULE_custom_clear_cache_logic(){
...
\Drupal\Core\Cache\Cache::invalidateTags(array('MY_CUSTOM_UNIQUE_TAG'));
nếu bạn muốn đọc thêm về nội bộ bộ nhớ cache 8 drupal