![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/setup/src/Magento/Setup/Module/Di/Code/Reader/Decorator/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Module\Di\Code\Reader\Decorator; use Magento\Setup\Module\Di\Compiler\Log\Log; /** * Class Directory * * @package Magento\Setup\Module\Di\Code\Reader\Decorator */ class Directory implements \Magento\Setup\Module\Di\Code\Reader\ClassesScannerInterface { /** * @var string */ private $current; /** * @var \Magento\Setup\Module\Di\Compiler\Log\Log */ private $log; /** * @var array */ private $relations = []; /** * @var \Magento\Framework\Code\Validator */ private $validator; /** * @var \Magento\Framework\Code\Reader\ClassReader */ private $classReader; /** * @var \Magento\Setup\Module\Di\Code\Reader\ClassesScanner */ private $classesScanner; /** * @var string */ private $generationDir; /** * @param \Magento\Setup\Module\Di\Compiler\Log\Log $log Logging object * @param \Magento\Framework\Code\Reader\ClassReader $classReader * @param \Magento\Setup\Module\Di\Code\Reader\ClassesScanner $classesScanner * @param \Magento\Framework\Code\Validator $validator * @param string $generationDir directory where generated files is */ public function __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 ) { $this->log = $log; $this->classReader = $classReader; $this->classesScanner = $classesScanner; $this->validator = $validator; $this->generationDir = $generationDir; set_error_handler([$this, 'errorHandler'], E_STRICT); } /** * ErrorHandler for logging * * @param int $errorNumber * @param string $msg * * @return void */ public function errorHandler($errorNumber, $msg) { $this->log->add(Log::COMPILATION_ERROR, $this->current, '#' . $errorNumber . ' ' . $msg); } /** * Retrieves list of classes for given path * * @param string $path path to dir with files * * @return array */ public function getList($path) { foreach ($this->classesScanner->getList($path) as $className) { $this->current = $className; // for errorHandler function try { if ($path != $this->generationDir) { // validate all classes except classes in generation dir $this->validator->validate($className); } $this->relations[$className] = $this->classReader->getParents($className); } catch (\Magento\Framework\Exception\ValidatorException $exception) { $this->log->add(Log::COMPILATION_ERROR, $className, $exception->getMessage()); } catch (\ReflectionException $e) { $this->log->add(Log::COMPILATION_ERROR, $className, $e->getMessage()); } } return $this->relations; } /** * @return array */ public function getRelations() { return $this->relations; } }