Drupal 8 में दो स्तर कैश, पेज कैश और डायनेमिक पेज कैश हैं।
हां आप डायनामिक पेज कैश को बता सकते हैं जैसे @ 4k4 का उल्लेख किया गया है। आपके द्वारा जारी की जा रही समस्या पेज कैश को इंटरसेप्ट करने की अधिक संभावना है। कुंजी यहाँ है ।
इसके लिए कुछ उपाय हैं:
नया वर्ग जोड़ें जो 'HttpKernelInterface' को लागू करता है और 200 से अधिक प्राथमिकता के साथ 'http_middleware' पंजीकृत करता है (280 करेगा)। संदर्भों के लिए 'PageCache' क्लास और कार्यान्वयन देखें।
मौजूदा 'PageCache' को 'ServiceProviderBase' से बढ़ाकर नया वर्ग बनाने के लिए। संदर्भ के लिए इस की जाँच करें यहाँ । फिर, 'PageCache' का विस्तार करने के लिए नई कक्षा बनाएँ।
यहाँ कोड संदर्भ है:
यह StaticCacheServiceProvider.php है:
/**
* Modifies the language manager service.
*/
class StaticCacheServiceProvider extends ServiceProviderBase
{
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container)
{
// Overrides language_manager class to test domain language negotiation.
$definition = $container->getDefinition('http_middleware.page_cache');
$definition->setClass('Drupal\your_module\StackMiddleware\StaticCache');
}
}
यह StaticCache.php है:
/**
* Executes the page caching before the main kernel takes over the request.
*/
class StaticCache extends PageCache
{
/**
* {@inheritdoc}
*/
public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
{
// do special logic here.
$response = parent::handle($request, $type, $catch);
return $response;
}
}
आशा मदद करती है।