यहां कस्टम ब्लॉक के संदर्भ में कैश टैग का उपयोग करने का तरीका बताया गया है जिसे मैंने कोशिश की है और काम करता है लेकिन मुझे लगता है कि यह अन्य संदर्भों पर लागू होता है
डिफ़ॉल्ट ड्रुपल टैग का उपयोग करें
बिल्ड एरे में आप निर्दिष्ट कर सकते हैं cache > tags > node_list
और यह ब्लॉक कंटेंट अमान्य हो जाएगा (ताज़ा) जब कोई भी NODE आपकी ओर से करने के लिए और कुछ नहीं के साथ बदला जाता है
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
],
);
}
वैकल्पिक रूप से आप एक या एक से अधिक नोड / टर्म / यूजर आईडी डाल सकते हैं ताकि ऊपर दिए गए कोड टिप्पणी में दिखाए गए अनुसार विशिष्ट नोड्स या शर्तों पर सरणी को अमान्य कर सकें। नोट: आप नोड्स, शब्द, उपयोगकर्ता और कस्टम टैग को मिक्स और मैच कर सकते हैं जैसा कि आप फिट देखते हैं।
अपने खुद के टैग का उपयोग करें
यदि आप अपने बिल्ड ऐरे को साफ़ करने का अपना तरीका चाहते हैं, तो बिल्ड ऐरे में अपना कस्टम यूनिक टैग जोड़ें (कोई भी यूनिक स्ट्रिंग करेंगे)
public function build() {
return array(
'#markup' => MY_MODULE_awesome_dynamic_node_content(),
'#cache' => [
'tags' => ['MY_CUSTOM_UNIQUE_TAG'],
],
);
}
और invalidateTags
अपने स्वयं के टैग के साथ अपने कस्टम कोड लॉजिक कॉल में
function MY_MODULE_custom_clear_cache_logic(){
...
\Drupal\Core\Cache\Cache::invalidateTags(array('MY_CUSTOM_UNIQUE_TAG'));
यदि आप ड्रुपल 8 कैश इंटर्नल के बारे में अधिक पढ़ना चाहते हैं