/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/App/ObjectManager/ConfigLoader.php
84 строки
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2014 Adobe * All Rights Reserved. */ 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; /** * @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 * @param Serialize|null $serializer */ public function __construct( \Magento\Framework\Config\CacheInterface $cache, \Magento\Framework\ObjectManager\Config\Reader\DomFactory $readerFactory, ?Serialize $serializer = null ) { $this->_cache = $cache; $this->_readerFactory = $readerFactory; $this->serializer = $serializer ?? \Magento\Framework\App\ObjectManager::getInstance()->get(Serialize::class); } /** * 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->serializer->serialize($data), $cacheId); } else { $data = $this->serializer->unserialize($data); } return $data; } }