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 
9 
14 {
18  private $readers;
19 
25  public function __construct(array $readers)
26  {
27  usort(
28  $readers,
29  function ($firstItem, $secondItem) {
30  if (!isset($firstItem['sortOrder']) || !isset($secondItem['sortOrder'])
31  || $firstItem['sortOrder'] == $secondItem['sortOrder']
32  ) {
33  return 0;
34  }
35  return $firstItem['sortOrder'] < $secondItem['sortOrder'] ? -1 : 1;
36  }
37  );
38  $this->readers = [];
39  foreach ($readers as $readerInfo) {
40  if (!isset($readerInfo['reader'])) {
41  continue;
42  }
43  $this->readers[] = $readerInfo['reader'];
44  }
45  }
46 
53  public function read($scope = null)
54  {
55  $result = [];
56  foreach ($this->readers as $reader) {
57  $result = array_replace_recursive($result, $reader->read($scope));
58  }
59  return $result;
60  }
61 }