Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Config.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Webapi\Model;
8 
13 
20 class Config implements ConfigInterface
21 {
22  const CACHE_ID = 'webapi_config';
23 
27  const SERVICE_CLASS_PATTERN = '/^(.+?)\\\\(.+?)\\\\Service\\\\(V\d+)+(\\\\.+)Interface$/';
28 
29  const API_PATTERN = '/^(.+?)\\\\(.+?)\\\\Api(\\\\.+)Interface$/';
30 
34  protected $cache;
35 
39  protected $configReader;
40 
44  protected $services;
45 
49  private $serializer;
50 
58  public function __construct(
59  WebapiCache $cache,
61  SerializerInterface $serializer = null
62  ) {
63  $this->cache = $cache;
64  $this->configReader = $configReader;
65  $this->serializer = $serializer ?: ObjectManager::getInstance()->get(SerializerInterface::class);
66  }
67 
71  public function getServices()
72  {
73  if (null === $this->services) {
74  $services = $this->cache->load(self::CACHE_ID);
75  if ($services && is_string($services)) {
76  $this->services = $this->serializer->unserialize($services);
77  } else {
78  $this->services = $this->configReader->read();
79  $this->cache->save($this->serializer->serialize($this->services), self::CACHE_ID);
80  }
81  }
82  return $this->services;
83  }
84 }
__construct(WebapiCache $cache, Reader $configReader, SerializerInterface $serializer=null)
Definition: Config.php:58