Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Directory.php
Go to the documentation of this file.
1 <?php
7 
9 
15 class Directory implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface
16 {
20  private $current;
21 
25  private $log;
26 
30  private $relations = [];
31 
35  private $validator;
36 
40  private $classReader;
41 
45  private $classesScanner;
46 
54  public function __construct(
55  \Magento\Setup\Module\Di\Compiler\Log\Log $log,
56  \Magento\Framework\Code\Reader\ClassReader $classReader,
57  \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner,
58  \Magento\Framework\Code\Validator $validator,
59  $generationDir
60  ) {
61  $this->log = $log;
62  $this->classReader = $classReader;
63  $this->classesScanner = $classesScanner;
64  $this->validator = $validator;
65  $this->generationDir = $generationDir;
66 
67  set_error_handler([$this, 'errorHandler'], E_STRICT);
68  }
69 
78  public function errorHandler($errorNumber, $msg)
79  {
80  $this->log->add(Log::COMPILATION_ERROR, $this->current, '#' . $errorNumber . ' ' . $msg);
81  }
82 
90  public function getList($path)
91  {
92  foreach ($this->classesScanner->getList($path) as $className) {
93  $this->current = $className; // for errorHandler function
94  try {
95  if ($path != $this->generationDir) { // validate all classes except classes in generation dir
96  $this->validator->validate($className);
97  }
98  $this->relations[$className] = $this->classReader->getParents($className);
99  } catch (\Magento\Framework\Exception\ValidatorException $exception) {
100  $this->log->add(Log::COMPILATION_ERROR, $className, $exception->getMessage());
101  } catch (\ReflectionException $e) {
102  $this->log->add(Log::COMPILATION_ERROR, $className, $e->getMessage());
103  }
104  }
105 
106  return $this->relations;
107  }
108 
112  public function getRelations()
113  {
114  return $this->relations;
115  }
116 }
__construct(\Magento\Setup\Module\Di\Compiler\Log\Log $log, \Magento\Framework\Code\Reader\ClassReader $classReader, \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner, \Magento\Framework\Code\Validator $validator, $generationDir)
Definition: Directory.php:54
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31