Reader.php 1011 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Analytics\Model\Config;
  7. use Magento\Framework\Config\ReaderInterface;
  8. /**
  9. * Composite reader for config.
  10. */
  11. class Reader implements ReaderInterface
  12. {
  13. /**
  14. * @var ReaderInterface[]
  15. */
  16. private $readers;
  17. /**
  18. * @var Mapper
  19. */
  20. private $mapper;
  21. /**
  22. * @param Mapper $mapper
  23. * @param ReaderInterface[] $readers
  24. */
  25. public function __construct(
  26. Mapper $mapper,
  27. $readers = []
  28. ) {
  29. $this->mapper = $mapper;
  30. $this->readers = $readers;
  31. }
  32. /**
  33. * Read configuration scope.
  34. *
  35. * @param string|null $scope
  36. * @return array
  37. */
  38. public function read($scope = null)
  39. {
  40. $data = [];
  41. foreach ($this->readers as $reader) {
  42. $data = array_merge_recursive($data, $reader->read($scope));
  43. }
  44. return $this->mapper->execute($data);
  45. }
  46. }