![]() 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/Config/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Config; use Magento\Framework\Exception\LocalizedException; /** * Read config from different sources and aggregate them * * @package Magento\Framework\Config */ class Reader implements \Magento\Framework\App\Config\Scope\ReaderInterface { /** * @var array */ private $sources; /** * @param array $sources */ public function __construct(array $sources) { $this->sources = $this->prepareSources($sources); } /** * Read configuration data * * @param null|string $scope * @throws LocalizedException Exception is thrown when scope other than default is given * @return array */ public function read($scope = null) { $config = []; foreach ($this->sources as $sourceData) { /** @var \Magento\Framework\App\Config\Reader\Source\SourceInterface $source */ $source = $sourceData['class']; $config = array_replace_recursive($config, $source->get($scope)); } return $config; } /** * Prepare source for usage * * @param array $array * @return array */ private function prepareSources(array $array) { $array = array_filter( $array, function ($item) { return (!isset($item['disable']) || !$item['disable']) && $item['class']; } ); uasort( $array, function ($firstItem, $nexItem) { return (int)$firstItem['sortOrder'] <=> (int)$nexItem['sortOrder']; } ); return $array; } }