কাস্টম ব্লকগুলির প্রসঙ্গে যা আমি চেষ্টা করেছি এবং কাজ করেছিলাম তার প্রসঙ্গে ক্যাশে ট্যাগগুলি কীভাবে ব্যবহার করতে হয় তা কিন্তু এখানে আমি মনে করি এটি অন্যান্য প্রসঙ্গে প্রযোজ্য
ডিফল্ট ড্রুপাল ট্যাগ ব্যবহার করুন
বিল্ড অ্যারেতে আপনি উল্লেখ করতে পারেন cache > tags > node_listএবং যখন কোনও কিছুই আপনার অংশে না করার পরিবর্তে কোনও কিছুই পরিবর্তন না করা হয় তখন এই ব্লক সামগ্রীটি অকার্যকর (রিফ্রেশ) হয়ে যায়
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 ক্যাশে ইন্টার্নাল সম্পর্কে আরও পড়তে চান