যা আমি বুঝতে পেরেছি, এটি একরকমের সমতুল্য getCacheTags ম্যাজেন্টো 1 এর পদ্ধতির
দ্য getIdentitiesমডেল শ্রেণীর তারপর প্রতি ব্লক বর্গ এই মডেল উল্লেখ ব্যবহার করা হয়।
ঠিক আছে চলুন /Magento/Catalog/Model/Category.php:
public function getIdentities()
{
$identities = [
self::CACHE_TAG . '_' . $this->getId(),
];
if ($this->hasDataChanges() || $this->isDeleted()) {
$identities[] = Product::CACHE_PRODUCT_CATEGORY_TAG . '_' . $this->getId();
}
return $identities;
}
এই পদ্ধতিটি তখন এতে উল্লেখ করা হয় /Magento/Catalog/Block/Category/View.php:
public function getIdentities()
{
return $this->getCurrentCategory()->getIdentities();
}
এম 2 এ, আপনাকে এখন দিয়ে ক্যাশে ট্যাগটি ঘোষণা করতে হবে getIdentities মডেল স্তরে পদ্ধতিটির করতে হবে, তারপরে আপনি সেই মডেলগুলিকে উল্লেখ করে ব্লকগুলিতে এটি ব্যবহার করতে পারেন।
আপনি যদি getIdentitiesপদ্ধতিটি প্রয়োগকারী প্রতিটি ব্লকটি পরীক্ষা করেন তবে এগুলি সমস্ত সম্পর্কিত মডেল getIdentitiesপদ্ধতি বা সম্পর্কিত মডেল ক্যাশে ট্যাগের মতো উল্লেখ করে\Magento\Catalog\Model\Product::CACHE_TAG
তারপরে এই ব্লক getIdentitiesপদ্ধতিগুলি বার্নিশে X-Magento-Tagsশিরোনাম সেট করার জন্য ম্যাথাসো দ্বারা উল্লিখিত ক্যাশিং কারণে ব্যবহার করা হয় ।
এই হেডার তারপর ব্যবহার করা হয় Magento/Framework/App/PageCache/Kernel.phpমধ্যে process()ক্যাশে সংরক্ষণ করতে পদ্ধতি:
$tagsHeader = $response->getHeader('X-Magento-Tags');
$tags = $tagsHeader ? explode(',', $tagsHeader->getFieldValue()) : [];
$response->clearHeader('Set-Cookie');
$response->clearHeader('X-Magento-Tags');
if (!headers_sent()) {
header_remove('Set-Cookie');
}
$this->cache->save(serialize($response), $this->identifier->getValue(), $tags, $maxAge);
dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.phpফাইলটিতে উপস্থিত রয়েছে তাই সম্ভবত এটি পরে সরিয়ে ফেলার উদ্দেশ্যে করা হয়েছে।