Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Reader.php
Go to the documentation of this file.
1 <?php
9 
10 class Reader
11 {
17  protected $_fileResolver;
18 
24  protected $_converter;
25 
31  protected $_fileName;
32 
38  protected $_domDocumentClass;
39 
45  protected $_scopePriorityScheme = ['global'];
46 
52  protected $_schemaFile;
53 
62  public function __construct(
63  \Magento\Framework\Config\FileResolverInterface $fileResolver,
64  \Magento\Framework\Config\ConverterInterface $converter,
65  SchemaLocator $schemaLocator,
66  \Magento\Framework\Config\DomFactory $domFactory,
67  $fileName = 'config.xml'
68  ) {
69  $this->_schemaFile = $schemaLocator->getSchema();
70  $this->_fileResolver = $fileResolver;
71  $this->_converter = $converter;
72  $this->domFactory = $domFactory;
73  $this->_fileName = $fileName;
74  }
75 
83  public function read()
84  {
85  $fileList = [];
86  foreach ($this->_scopePriorityScheme as $scope) {
87  $directories = $this->_fileResolver->get($this->_fileName, $scope);
88  foreach ($directories as $key => $directory) {
89  $fileList[$key] = $directory;
90  }
91  }
92 
93  if (!count($fileList)) {
94  return [];
95  }
96 
98  $domDocument = null;
99  foreach ($fileList as $file) {
100  try {
101  if (!$domDocument) {
102  $domDocument = $this->domFactory->createDom(['xml' => $file, 'schemaFile' => $this->_schemaFile]);
103  } else {
104  $domDocument->merge($file);
105  }
106  } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
107  throw new \Magento\Framework\Exception\LocalizedException(
108  new \Magento\Framework\Phrase(
109  'The XML in file "%1" is invalid:' . "\n%2\nVerify the XML and try again.",
110  [$file, $e->getMessage()]
111  )
112  );
113  }
114  }
115 
116  $output = [];
117  if ($domDocument) {
118  $output = $this->_converter->convert($domDocument->getDom());
119  }
120  return $output;
121  }
122 }
$fileList
Definition: export.php:13
$fileName
Definition: translate.phtml:15
__construct(\Magento\Framework\Config\FileResolverInterface $fileResolver, \Magento\Framework\Config\ConverterInterface $converter, SchemaLocator $schemaLocator, \Magento\Framework\Config\DomFactory $domFactory, $fileName='config.xml')
Definition: Reader.php:62