Skip to content

Commit b1eb7f3

Browse files
author
Sergii Kovalenko
committed
MAGETWO-88507: Allow Magento to generate factories from di.xml
1 parent 89deaab commit b1eb7f3

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

setup/src/Magento/Setup/Module/Di/Code/Scanner/XmlScanner.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,29 @@ public function collectEntities(array $files)
5555
$output[] = $node->nodeValue;
5656
}
5757

58-
$factoriesOutput = array_merge($factoriesOutput, $this->scanNonVirtualFactories($virtualTypes, $xpath));
58+
$factoriesOutput = array_merge($factoriesOutput, $this->scanFactories($xpath));
5959
}
6060

6161
$output = array_unique($output);
6262
$factoriesOutput = array_unique($factoriesOutput);
63+
$factoriesOutput = array_diff($factoriesOutput, $virtualTypes);
6364
return array_merge($this->_filterEntities($output), $factoriesOutput);
6465
}
6566

6667
/**
6768
* Scan factories from all di.xml and retrieve non virtual one
6869
*
69-
* @param array $virtualTypes
7070
* @param \DOMXPath $domXpath
7171
* @return array
7272
*/
73-
private function scanNonVirtualFactories(array $virtualTypes, \DOMXPath $domXpath)
73+
private function scanFactories(\DOMXPath $domXpath)
7474
{
7575
$output = [];
7676
$regex = '/^(.*)Factory$/';
7777
$query = "//argument[@xsi:type='object' and php:functionString('preg_match', '{$regex}', text()) > 0] |" .
7878
"//item[@xsi:type='object' and php:functionString('preg_match', '{$regex}', text()) > 0]";
7979
foreach ($domXpath->query($query) as $node) {
80-
if (!in_array($node->nodeValue, $virtualTypes)) {
81-
$output[] = $node->nodeValue;
82-
}
80+
$output[] = $node->nodeValue;
8381
}
8482

8583
return $output;

0 commit comments

Comments
 (0)