1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup\Module\Di\Code\Scanner;
class CompositeScanner implements ScannerInterface
{
/**
* @var ScannerInterface[]
*/
protected $_children = [];
/**
* Add child scanner
*
* @param ScannerInterface $scanner
* @param string $type
* @return void
*/
public function addChild(ScannerInterface $scanner, $type)
{
$this->_children[$type] = $scanner;
}
/**
* Scan files
*
* @param array $files
* @return array
*/
public function collectEntities(array $files)
{
$output = [];
foreach ($this->_children as $type => $scanner) {
if (!isset($files[$type]) || !is_array($files[$type])) {
continue;
}
$output[$type] = array_unique($scanner->collectEntities($files[$type]));
}
return $output;
}
}