যা আমি বুঝতে পেরেছি, এটি একরকমের সমতুল্য 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
ফাইলটিতে উপস্থিত রয়েছে তাই সম্ভবত এটি পরে সরিয়ে ফেলার উদ্দেশ্যে করা হয়েছে।