![]() 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/cartforge.co/vendor/magento/module-webapi-async/Plugin/Cache/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\WebapiAsync\Plugin\Cache; use Magento\WebapiAsync\Controller\Rest\AsynchronousSchemaRequestProcessor; use Magento\Framework\Webapi\Rest\Request; /** * Class Webapi */ class Webapi { /** * Cache key for Async Routes */ const ASYNC_ROUTES_CONFIG_CACHE_ID = 'async-routes-services-config'; /** * @var AsynchronousSchemaRequestProcessor */ private $asynchronousSchemaRequestProcessor; /** * @var \Magento\Framework\Webapi\Rest\Request */ private $request; /** * ServiceMetadata constructor. * * @param Request $request * @param AsynchronousSchemaRequestProcessor $asynchronousSchemaRequestProcessor */ public function __construct( \Magento\Framework\Webapi\Rest\Request $request, AsynchronousSchemaRequestProcessor $asynchronousSchemaRequestProcessor ) { $this->request = $request; $this->asynchronousSchemaRequestProcessor = $asynchronousSchemaRequestProcessor; } /** * Change identifier in case if Async request before cache load * * @param \Magento\Webapi\Model\Cache\Type\Webapi $subject * @param string $identifier * @return null|string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeLoad(\Magento\Webapi\Model\Cache\Type\Webapi $subject, $identifier) { if ($this->asynchronousSchemaRequestProcessor->canProcess($this->request) && $identifier === \Magento\Webapi\Model\ServiceMetadata::ROUTES_CONFIG_CACHE_ID) { return self::ASYNC_ROUTES_CONFIG_CACHE_ID; } return null; } /** * Change identifier in case if Async request before cache save * * @param \Magento\Webapi\Model\Cache\Type\Webapi $subject * @param string $data * @param string $identifier * @param array $tags * @param int|bool|null $lifeTime * @return array|null * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeSave( \Magento\Webapi\Model\Cache\Type\Webapi $subject, $data, $identifier, array $tags = [], $lifeTime = null ) { if ($this->asynchronousSchemaRequestProcessor->canProcess($this->request) && $identifier === \Magento\Webapi\Model\ServiceMetadata::ROUTES_CONFIG_CACHE_ID) { return [$data, self::ASYNC_ROUTES_CONFIG_CACHE_ID, $tags, $lifeTime]; } return null; } /** * Change identifier in case if Async request before remove cache * * @param \Magento\Webapi\Model\Cache\Type\Webapi $subject * @param string $identifier * @return null|string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeRemove(\Magento\Webapi\Model\Cache\Type\Webapi $subject, $identifier) { if ($this->asynchronousSchemaRequestProcessor->canProcess($this->request) && $identifier === \Magento\Webapi\Model\ServiceMetadata::ROUTES_CONFIG_CACHE_ID) { return self::ASYNC_ROUTES_CONFIG_CACHE_ID; } return null; } }