@@ -55,31 +55,29 @@ public function collectEntities(array $files)
55
55
$ output [] = $ node ->nodeValue ;
56
56
}
57
57
58
- $ factoriesOutput = array_merge ($ factoriesOutput , $ this ->scanNonVirtualFactories ( $ virtualTypes , $ xpath ));
58
+ $ factoriesOutput = array_merge ($ factoriesOutput , $ this ->scanFactories ( $ xpath ));
59
59
}
60
60
61
61
$ output = array_unique ($ output );
62
62
$ factoriesOutput = array_unique ($ factoriesOutput );
63
+ $ factoriesOutput = array_diff ($ factoriesOutput , $ virtualTypes );
63
64
return array_merge ($ this ->_filterEntities ($ output ), $ factoriesOutput );
64
65
}
65
66
66
67
/**
67
68
* Scan factories from all di.xml and retrieve non virtual one
68
69
*
69
- * @param array $virtualTypes
70
70
* @param \DOMXPath $domXpath
71
71
* @return array
72
72
*/
73
- private function scanNonVirtualFactories ( array $ virtualTypes , \DOMXPath $ domXpath )
73
+ private function scanFactories ( \DOMXPath $ domXpath )
74
74
{
75
75
$ output = [];
76
76
$ regex = '/^(.*)Factory$/ ' ;
77
77
$ query = "//argument[@xsi:type='object' and php:functionString('preg_match', ' {$ regex }', text()) > 0] | " .
78
78
"//item[@xsi:type='object' and php:functionString('preg_match', ' {$ regex }', text()) > 0] " ;
79
79
foreach ($ domXpath ->query ($ query ) as $ node ) {
80
- if (!in_array ($ node ->nodeValue , $ virtualTypes )) {
81
- $ output [] = $ node ->nodeValue ;
82
- }
80
+ $ output [] = $ node ->nodeValue ;
83
81
}
84
82
85
83
return $ output ;
0 commit comments