Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Interceptions.php
Go to the documentation of this file.
1 <?php
7 
10 
16 class Interceptions implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface
17 {
21  private $classReader;
22 
26  private $classesScanner;
27 
31  private $log;
32 
36  private $validator;
37 
45  public function __construct(
46  \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner,
47  \Magento\Framework\Code\Reader\ClassReader $classReader,
48  \Magento\Framework\Code\Validator $validator,
49  \Magento\Framework\Code\Validator\ConstructorIntegrity $constructorIntegrityValidator,
50  Log $log
51  ) {
52  $this->classReader = $classReader;
53  $this->classesScanner = $classesScanner;
54  $this->validator = $validator;
55  $this->log = $log;
56 
57  $this->validator->add($constructorIntegrityValidator);
58  }
59 
67  public function getList($path)
68  {
69  $nameList = [];
70  foreach ($this->classesScanner->getList($path) as $className) {
71  try {
72  // validate all classes except classes in generated/code dir
73  $generatedCodeDir = DirectoryList::getDefaultConfig()[DirectoryList::GENERATED_CODE];
74  if (strpos($path, $generatedCodeDir[DirectoryList::PATH]) === false) {
75  $this->validator->validate($className);
76  }
77  $nameList[] = $className;
78  } catch (\Magento\Framework\Exception\ValidatorException $exception) {
79  $this->log->add(Log::COMPILATION_ERROR, $className, $exception->getMessage());
80  } catch (\ReflectionException $e) {
81  $this->log->add(Log::COMPILATION_ERROR, $className, $e->getMessage());
82  }
83  }
84 
85  $this->log->report();
86 
87  return $nameList;
88  }
89 }
__construct(\Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner, \Magento\Framework\Code\Reader\ClassReader $classReader, \Magento\Framework\Code\Validator $validator, \Magento\Framework\Code\Validator\ConstructorIntegrity $constructorIntegrityValidator, Log $log)
add($type, $key, $message='')
Definition: Log.php:70
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31