Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ApplicationCodeGenerator.php
Go to the documentation of this file.
1 <?php
7 
14 
16 {
20  private $data = [];
21 
25  private $classesScanner;
26 
30  private $phpScanner;
31 
35  private $directoryScanner;
36 
43  public function __construct(
44  ClassesScanner $classesScanner,
45  PhpScanner $phpScanner,
46  DirectoryScanner $directoryScanner,
47  $data = []
48  ) {
49  $this->data = $data;
50  $this->classesScanner = $classesScanner;
51  $this->phpScanner = $phpScanner;
52  $this->directoryScanner = $directoryScanner;
53  }
54 
58  public function doOperation()
59  {
60  if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
61  !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
62  return;
63  }
64 
65  foreach ($this->data['paths'] as $paths) {
66  if (!is_array($paths)) {
67  $paths = (array)$paths;
68  }
69  $files = [];
70  foreach ($paths as $path) {
71  $this->classesScanner->getList($path);
72  $files = array_merge_recursive(
73  $files,
74  $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
75  );
76  }
77  $entities = $this->phpScanner->collectEntities($files['php']);
78  foreach ($entities as $entityName) {
79  class_exists($entityName);
80  }
81  }
82  }
83 
89  public function getName()
90  {
91  return 'Application code generator';
92  }
93 }
__construct(ClassesScanner $classesScanner, PhpScanner $phpScanner, DirectoryScanner $directoryScanner, $data=[])
$paths
Definition: _bootstrap.php:83
foreach($appDirs as $dir) $files