![]() 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/framework/App/Config/Initial/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\App\Config\Initial; /** * Default configuration data reader. Reads configuration data from storage */ class Reader { /** * File locator * * @var \Magento\Framework\Config\FileResolverInterface */ protected $_fileResolver; /** * Config converter * * @var \Magento\Framework\Config\ConverterInterface */ protected $_converter; /** * Config file name * * @var string */ protected $_fileName; /** * Class of dom configuration document used for merge * * @var string */ protected $_domDocumentClass; /** * Scope priority loading scheme * * @var array */ protected $_scopePriorityScheme = ['global']; /** * Path to corresponding XSD file with validation rules for config * * @var string */ protected $_schemaFile; /** * @var \Magento\Framework\Config\DomFactory */ private $domFactory; /** * @param \Magento\Framework\Config\FileResolverInterface $fileResolver * @param \Magento\Framework\Config\ConverterInterface $converter * @param SchemaLocator $schemaLocator * @param \Magento\Framework\Config\DomFactory $domFactory * @param string $fileName */ public function __construct( \Magento\Framework\Config\FileResolverInterface $fileResolver, \Magento\Framework\Config\ConverterInterface $converter, SchemaLocator $schemaLocator, \Magento\Framework\Config\DomFactory $domFactory, $fileName = 'config.xml' ) { $this->_schemaFile = $schemaLocator->getSchema(); $this->_fileResolver = $fileResolver; $this->_converter = $converter; $this->domFactory = $domFactory; $this->_fileName = $fileName; } /** * Read configuration scope * * @return array * * @throws \Magento\Framework\Exception\LocalizedException */ public function read() { $fileList = []; foreach ($this->_scopePriorityScheme as $scope) { $directories = $this->_fileResolver->get($this->_fileName, $scope); foreach ($directories as $key => $directory) { $fileList[$key] = $directory; } } if (!count($fileList)) { return []; } /** @var \Magento\Framework\Config\Dom $domDocument */ $domDocument = null; foreach ($fileList as $file) { try { if (!$domDocument) { $domDocument = $this->domFactory->createDom(['xml' => $file, 'schemaFile' => $this->_schemaFile]); } else { $domDocument->merge($file); } } catch (\Magento\Framework\Config\Dom\ValidationException $e) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase( 'The XML in file "%1" is invalid:' . "\n%2\nVerify the XML and try again.", [$file, $e->getMessage()] ) ); } } $output = []; if ($domDocument) { $output = $this->_converter->convert($domDocument->getDom()); } return $output; } }