Berikut adalah cara menggunakan tag cache dalam konteks blok khusus yang telah saya coba dan berfungsi tetapi saya pikir ini berlaku untuk konteks lain
Gunakan tag drupal default
Di dalam susunan bentukan, Anda dapat menentukan cache > tags > node_list
dan mencekal konten ini akan menjadi tidak valid (di-refresh) ketika APA PUN DOMPET berubah tanpa melakukan apa pun di pihak Anda
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
],
);
}
Atau Anda dapat memasukkan satu atau lebih node / term / ID pengguna untuk membatalkan array pada node atau istilah tertentu seperti yang ditunjukkan dalam komentar kode di atas. Catatan: Anda dapat mencampur dan mencocokkan node, istilah, pengguna, dan tag khusus sesuai keinginan Anda.
Gunakan tag Anda sendiri
jika Anda ingin memiliki cara sendiri untuk menghapus array build Anda, tambahkan tag unik khusus Anda di array build (string unik apa pun akan dilakukan)
public function build() {
return array(
'#markup' => MY_MODULE_awesome_dynamic_node_content(),
'#cache' => [
'tags' => ['MY_CUSTOM_UNIQUE_TAG'],
],
);
}
dan dalam panggilan logika kode khusus invalidateTags
Anda dengan tag Anda sendiri
function MY_MODULE_custom_clear_cache_logic(){
...
\Drupal\Core\Cache\Cache::invalidateTags(array('MY_CUSTOM_UNIQUE_TAG'));
jika Anda ingin membaca lebih lanjut tentang internal 8 cache drupal