Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CompositeReader.php
Go to the documentation of this file.
1 <?php
7 
10 
15 {
19  private $readers;
20 
26  public function __construct(array $readers)
27  {
28  $this->readers = [];
29  $readers = $this->sortReaders($readers);
30  foreach ($readers as $name => $readerInfo) {
31  if (!isset($readerInfo['reader']) || !($readerInfo['reader'] instanceof ReaderInterface)) {
32  throw new \InvalidArgumentException(
33  new Phrase(
34  'Reader [%name] must implement Magento\Framework\Config\ReaderInterface',
35  ['name' => $name]
36  )
37  );
38  }
39  $this->readers[] = $readerInfo['reader'];
40  }
41  }
42 
49  public function read($scope = null)
50  {
51  $result = [];
52  foreach ($this->readers as $reader) {
53  $result = array_replace_recursive($result, $reader->read($scope));
54  }
55  return $result;
56  }
57 
64  private function sortReaders(array $readers)
65  {
66  usort(
67  $readers,
68  function ($firstItem, $secondItem) {
69  $firstValue = 0;
70  $secondValue = 0;
71  if (isset($firstItem['sortOrder'])) {
72  $firstValue = intval($firstItem['sortOrder']);
73  }
74  if (isset($secondItem['sortOrder'])) {
75  $secondValue = intval($secondItem['sortOrder']);
76  }
77  return $firstValue <=> $secondValue;
78  }
79  );
80  return $readers;
81  }
82 }
if(!isset($_GET['name'])) $name
Definition: log.php:14