1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /**
- * ObjectManager configuration loader
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\App\ObjectManager;
- use Magento\Framework\ObjectManager\ConfigLoaderInterface;
- use Magento\Framework\Serialize\Serializer\Serialize;
- use Magento\Framework\Serialize\SerializerInterface;
- class ConfigLoader implements ConfigLoaderInterface
- {
- /**
- * Config reader
- *
- * @var \Magento\Framework\ObjectManager\Config\Reader\Dom
- */
- protected $_reader;
- /**
- * Config reader factory
- *
- * @var \Magento\Framework\ObjectManager\Config\Reader\DomFactory
- */
- protected $_readerFactory;
- /**
- * Cache
- *
- * @var \Magento\Framework\Config\CacheInterface
- */
- protected $_cache;
- /**
- * @var SerializerInterface
- */
- private $serializer;
- /**
- * @param \Magento\Framework\Config\CacheInterface $cache
- * @param \Magento\Framework\ObjectManager\Config\Reader\DomFactory $readerFactory
- */
- public function __construct(
- \Magento\Framework\Config\CacheInterface $cache,
- \Magento\Framework\ObjectManager\Config\Reader\DomFactory $readerFactory
- ) {
- $this->_cache = $cache;
- $this->_readerFactory = $readerFactory;
- }
- /**
- * Get reader instance
- *
- * @return \Magento\Framework\ObjectManager\Config\Reader\Dom
- */
- protected function _getReader()
- {
- if (empty($this->_reader)) {
- $this->_reader = $this->_readerFactory->create();
- }
- return $this->_reader;
- }
- /**
- * {inheritdoc}
- */
- public function load($area)
- {
- $cacheId = $area . '::DiConfig';
- $data = $this->_cache->load($cacheId);
- if (!$data) {
- $data = $this->_getReader()->read($area);
- $this->_cache->save($this->getSerializer()->serialize($data), $cacheId);
- } else {
- $data = $this->getSerializer()->unserialize($data);
- }
- return $data;
- }
- /**
- * Get serializer
- *
- * @return SerializerInterface
- * @deprecated 101.0.0
- */
- private function getSerializer()
- {
- if (null === $this->serializer) {
- $this->serializer = \Magento\Framework\App\ObjectManager::getInstance()->get(Serialize::class);
- }
- return $this->serializer;
- }
- }
|