/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/MessageQueue/Config/CompositeReader.php
82 строки
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 2018 Adobe * All Rights Reserved. */ namespace Magento\Framework\MessageQueue\Config; use Magento\Framework\Config\ReaderInterface; use Magento\Framework\Phrase; /** * Composite reader for communication config. */ class CompositeReader implements ReaderInterface { /** * @var ReaderInterface[] */ private $readers; /** * Initialize dependencies. * * @param array $readers */ public function __construct(array $readers) { $this->readers = []; $readers = $this->sortReaders($readers); foreach ($readers as $name => $readerInfo) { if (!isset($readerInfo['reader']) || !($readerInfo['reader'] instanceof ReaderInterface)) { throw new \InvalidArgumentException( new Phrase( 'Reader [%name] must implement Magento\Framework\Config\ReaderInterface', ['name' => $name] ) ); } $this->readers[] = $readerInfo['reader']; } } /** * Read config. * * @param string|null $scope * @return array */ public function read($scope = null) { $result = []; foreach ($this->readers as $reader) { $result = array_replace_recursive($result, $reader->read($scope)); } return $result; } /** * Sort readers according to param 'sortOrder' * * @param array $readers * @return array */ private function sortReaders(array $readers) { usort( $readers, function ($firstItem, $secondItem) { $firstValue = 0; $secondValue = 0; if (isset($firstItem['sortOrder'])) { $firstValue = (int)$firstItem['sortOrder']; } if (isset($secondItem['sortOrder'])) { $secondValue = (int)$secondItem['sortOrder']; } return $firstValue <=> $secondValue; } ); return $readers; } }