![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-page-cache/Model/Controller/Result/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\PageCache\Model\Controller\Result; use Magento\PageCache\Model\Config; use Magento\Framework\App\PageCache\Kernel; use Magento\Framework\App\State as AppState; use Magento\Framework\Registry; use Magento\Framework\Controller\ResultInterface; use Magento\Framework\App\Response\Http as ResponseHttp; use Laminas\Http\Header\HeaderInterface as HttpHeaderInterface; use Magento\PageCache\Model\Cache\Type as CacheType; /** * Plugin for processing builtin cache * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class BuiltinPlugin { /** * @var Config */ private $config; /** * @var Kernel */ private $kernel; /** * @var AppState */ private $state; /** * @var Registry */ private $registry; /** * @param Config $config * @param Kernel $kernel * @param AppState $state * @param Registry $registry */ public function __construct(Config $config, Kernel $kernel, AppState $state, Registry $registry) { $this->config = $config; $this->kernel = $kernel; $this->state = $state; $this->registry = $registry; } /** * Perform result postprocessing * * @param ResultInterface $subject * @param ResultInterface $result * @param ResponseHttp $response * @return ResultInterface * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterRenderResult(ResultInterface $subject, ResultInterface $result, ResponseHttp $response) { $usePlugin = $this->registry->registry('use_page_cache_plugin'); if (!$usePlugin || !$this->config->isEnabled() || $this->config->getType() !== Config::BUILT_IN) { return $result; } if ($this->state->getMode() == AppState::MODE_DEVELOPER) { $cacheControlHeader = $response->getHeader('Cache-Control'); if ($cacheControlHeader instanceof HttpHeaderInterface) { $response->setHeader('X-Magento-Cache-Control', $cacheControlHeader->getFieldValue()); } $response->setHeader('X-Magento-Cache-Debug', 'MISS', true); } $tagsHeader = $response->getHeader('X-Magento-Tags'); $tags = []; if ($tagsHeader) { $tags = explode(',', $tagsHeader->getFieldValue()); $response->clearHeader('X-Magento-Tags'); } $tags = array_unique(array_merge($tags, [CacheType::CACHE_TAG])); $response->setHeader('X-Magento-Tags', implode(',', $tags)); $this->kernel->process($response); return $result; } }