![]() 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/old/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvParameterException; /** * This class is used to remove circular dependencies between individual passes. * * @author Johannes M. Schmitt <[email protected]> */ class Compiler { /** * @var \Symfony\Component\DependencyInjection\Compiler\PassConfig */ private $passConfig; /** * @var mixed[] */ private $log = []; /** * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraph */ private $serviceReferenceGraph; public function __construct() { $this->passConfig = new PassConfig(); $this->serviceReferenceGraph = new ServiceReferenceGraph(); } public function getPassConfig() : PassConfig { return $this->passConfig; } public function getServiceReferenceGraph() : ServiceReferenceGraph { return $this->serviceReferenceGraph; } public function addPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) { $this->passConfig->addPass($pass, $type, $priority); } /** * @final */ public function log(CompilerPassInterface $pass, string $message) { if (\strpos($message, "\n") !== \false) { $message = \str_replace("\n", "\n" . \get_class($pass) . ': ', \trim($message)); } $this->log[] = \get_class($pass) . ': ' . $message; } public function getLog() : array { return $this->log; } /** * Run the Compiler and process all Passes. */ public function compile(ContainerBuilder $container) { try { foreach ($this->passConfig->getPasses() as $pass) { $pass->process($container); } } catch (\Exception $e) { $usedEnvs = []; $prev = $e; do { $msg = $prev->getMessage(); if ($msg !== ($resolvedMsg = $container->resolveEnvPlaceholders($msg, null, $usedEnvs))) { $r = new \ReflectionProperty($prev, 'message'); $r->setAccessible(\true); $r->setValue($prev, $resolvedMsg); } } while ($prev = $prev->getPrevious()); if ($usedEnvs) { $e = new EnvParameterException($usedEnvs, $e); } throw $e; } finally { $this->getServiceReferenceGraph()->clear(); } } }