![]() 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/App/Task/Operation/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Module\Di\App\Task\Operation; use Magento\Framework\App; use Magento\Framework\Code\Generator\Io; use Magento\Framework\Filesystem\Driver\File; use Magento\Framework\Interception\Code\Generator\Interceptor; use Magento\Setup\Module\Di\App\Task\OperationInterface; use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder; use Magento\Setup\Module\Di\Code\GeneratorFactory; use Magento\Setup\Module\Di\Code\Reader\ClassesScanner; class Interception implements OperationInterface { /** * @var App\AreaList */ private $areaList; /** * @var InterceptionConfigurationBuilder */ private $interceptionConfigurationBuilder; /** * @var array */ private $data; /** * @var ClassesScanner */ private $classesScanner; /** * @var GeneratorFactory */ private $generatorFactory; /** * @param InterceptionConfigurationBuilder $interceptionConfigurationBuilder * @param App\AreaList $areaList * @param ClassesScanner $classesScanner * @param GeneratorFactory $generatorFactory * @param array $data */ public function __construct( InterceptionConfigurationBuilder $interceptionConfigurationBuilder, App\AreaList $areaList, ClassesScanner $classesScanner, GeneratorFactory $generatorFactory, $data = [] ) { $this->interceptionConfigurationBuilder = $interceptionConfigurationBuilder; $this->areaList = $areaList; $this->data = $data; $this->classesScanner = $classesScanner; $this->generatorFactory = $generatorFactory; } /** * @inheritdoc */ public function doOperation() { if (empty($this->data)) { return; } $this->interceptionConfigurationBuilder->addAreaCode(App\Area::AREA_GLOBAL); foreach ($this->areaList->getCodes() as $areaCode) { $this->interceptionConfigurationBuilder->addAreaCode($areaCode); } $classesList = []; foreach ($this->data['intercepted_paths'] as $paths) { if (!is_array($paths)) { $paths = (array)$paths; } foreach ($paths as $path) { $classesList[] = $this->classesScanner->getList($path); } } $classesList = array_merge([], ...$classesList); $generatorIo = new Io(new File(), $this->data['path_to_store']); $generator = $this->generatorFactory->create( [ 'ioObject' => $generatorIo, 'generatedEntities' => [ Interceptor::ENTITY_TYPE => \Magento\Setup\Module\Di\Code\Generator\Interceptor::class, ] ] ); $configuration = $this->interceptionConfigurationBuilder->getInterceptionConfiguration($classesList); $generator->generateList($configuration); } /** * Returns operation name * * @return string */ public function getName() { return 'Interceptors generation'; } }