![]() 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-webapi/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Webapi\Model; use Magento\Webapi\Model\Cache\Type\Webapi as WebapiCache; use Magento\Webapi\Model\Config\Reader; use Magento\Framework\App\ObjectManager; use Magento\Framework\Serialize\SerializerInterface; /** * This class gives access to consolidated web API configuration from <Module_Name>/etc/webapi.xml files. * * @api * @since 100.0.2 */ class Config implements ConfigInterface { const CACHE_ID = 'webapi_config'; /** * Pattern for Web API interface name. */ const SERVICE_CLASS_PATTERN = '/^(.+?)\\\\(.+?)\\\\Service\\\\(V\d+)+(\\\\.+)Interface$/'; const API_PATTERN = '/^(.+?)\\\\(.+?)\\\\Api(\\\\.+)Interface$/'; /** * @var WebapiCache */ protected $cache; /** * @var Reader */ protected $configReader; /** * @var array */ protected $services; /** * @var SerializerInterface */ private $serializer; /** * Initialize dependencies. * * @param WebapiCache $cache * @param Reader $configReader * @param SerializerInterface|null $serializer */ public function __construct( WebapiCache $cache, Reader $configReader, SerializerInterface $serializer = null ) { $this->cache = $cache; $this->configReader = $configReader; $this->serializer = $serializer ?: ObjectManager::getInstance()->get(SerializerInterface::class); } /** * {@inheritdoc} */ public function getServices() { if (null === $this->services) { $services = $this->cache->load(self::CACHE_ID); if ($services && is_string($services)) { $this->services = $this->serializer->unserialize($services); } else { $this->services = $this->configReader->read(); $this->cache->save($this->serializer->serialize($this->services), self::CACHE_ID); } } return $this->services; } }