![]() 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/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Module\Di\Code; use Magento\Framework\Code\Generator as FrameworkGenerator; use Magento\Framework\Code\Generator\DefinedClasses; use Magento\Framework\ObjectManagerInterface; /** * Class Generator * @package Magento\Setup\Module\Di\Code */ class Generator extends FrameworkGenerator { /** * List of class methods * * @var array */ private $classMethods = []; /** * @param ObjectManagerInterface $objectManagerInterface * @param FrameworkGenerator\Io $ioObject * @param array $generatedEntities * @param DefinedClasses $definedClasses */ public function __construct( ObjectManagerInterface $objectManagerInterface, \Magento\Framework\Code\Generator\Io $ioObject = null, array $generatedEntities = [], DefinedClasses $definedClasses = null ) { parent::__construct($ioObject, $generatedEntities, $definedClasses); $this->setObjectManager($objectManagerInterface); } /** * Create entity generator * * @param string $generatorClass * @param string $entityName * @param string $className * @return \Magento\Framework\Code\Generator\EntityAbstract */ protected function createGeneratorInstance($generatorClass, $entityName, $className) { $generatorClass = parent::createGeneratorInstance($generatorClass, $entityName, $className); $generatorClass->setInterceptedMethods($this->classMethods); return $generatorClass; } /** * Generates list of classes * * @param array $classesToGenerate * @throws \Magento\Framework\Exception\LocalizedException * @return void */ public function generateList($classesToGenerate) { foreach ($classesToGenerate as $class => $methods) { $this->setClassMethods($methods); $this->generateClass($class . '\\Interceptor'); $this->clearClassMethods(); } } /** * Sets class methods * * @param array $methods * @return void */ private function setClassMethods($methods) { $this->classMethods = $methods; } /** * Clear class methods * @return void */ private function clearClassMethods() { $this->classMethods = []; } }