33 protected function _prepareFiles()
42 foreach ($configDirectory->search(
'{*/di.xml,di.xml}') as
$path) {
43 $search[] = $configDirectory->getAbsolutePath(
$path);
45 self::$_primaryFiles = $fileIteratorFactory->create($search);
49 ->get(\
Magento\Framework\Module\
Dir\Reader::class);
50 self::$_moduleGlobalFiles = $modulesReader->getConfigurationFiles(
'di.xml');
53 $areas = [
'adminhtml',
'frontend'];
54 foreach ($areas as $area) {
55 $moduleAreaFiles = $modulesReader->getConfigurationFiles($area .
'/di.xml');
56 self::$_moduleAreaFiles[$area] = $moduleAreaFiles;
66 public function testDiConfigFileWithoutMerging($filePath, $xml)
73 $dom = new \DOMDocument();
76 libxml_use_internal_errors(
true);
78 libxml_use_internal_errors(
false);
82 'File ' . $filePath .
' has invalid xml structure. ' 90 if (empty(self::$_primaryFiles)) {
91 $this->_prepareFiles();
94 $common = array_merge(self::$_primaryFiles->toArray(), self::$_moduleGlobalFiles->toArray());
96 foreach (self::$_moduleAreaFiles as
$files) {
97 $common = array_merge($common,
$files->toArray());
112 public function testMergedDiConfig(array
$files)
115 $fileResolverMock = $this->getMockBuilder(\
Magento\Framework\
Config\FileResolverInterface::class)
116 ->setMethods([
'read'])
117 ->getMockForAbstractClass();
118 $fileResolverMock->expects($this->any())->method(
'read')->will($this->returnValue(
$files));
119 $validationStateMock = $this->createPartialMock(
121 [
'isValidationRequired']
123 $validationStateMock->expects($this->any())->method(
'isValidationRequired')->will($this->returnValue(
true));
130 new \Magento\Framework\ObjectManager\Config\Reader\Dom(
140 if (empty(self::$_primaryFiles)) {
141 $this->_prepareFiles();
143 foreach (self::$_primaryFiles->toArray() as $file) {
144 $primaryFiles[] = [[$file]];
146 $primaryFiles[
'all primary config files'] = [self::$_primaryFiles->toArray()];
148 foreach (self::$_moduleGlobalFiles->toArray() as $file) {
149 $moduleFiles[] = [[$file]];
151 $moduleFiles[
'all module global config files'] = [self::$_moduleGlobalFiles->toArray()];
154 foreach (self::$_moduleAreaFiles as $area =>
$files) {
155 foreach (
$files->toArray() as $file) {
156 $areaFiles[] = [[$file]];
158 $areaFiles[
"all {$area} config files"] = [self::$_moduleAreaFiles[$area]->toArray()];
161 return $primaryFiles + $moduleFiles + $areaFiles;
static validateDomDocument(\DOMDocument $dom, $schema, $errorFormat=self::ERROR_FORMAT_DEFAULT)
static $_moduleGlobalFiles
foreach($appDirs as $dir) $files
static getObjectManager()