EVOLUTION-NINJA
Edit File: ContainerBuilderFactory.php
<?php declare (strict_types=1); namespace RectorPrefix20211231\Symplify\SymplifyKernel; use RectorPrefix20211231\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder; use RectorPrefix20211231\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; use RectorPrefix20211231\Symplify\SymplifyKernel\Contract\Config\LoaderFactoryInterface; use RectorPrefix20211231\Symplify\SymplifyKernel\DependencyInjection\LoadExtensionConfigsCompilerPass; use RectorPrefix20211231\Webmozart\Assert\Assert; final class ContainerBuilderFactory { /** * @var \Symplify\SymplifyKernel\Contract\Config\LoaderFactoryInterface */ private $loaderFactory; public function __construct(\RectorPrefix20211231\Symplify\SymplifyKernel\Contract\Config\LoaderFactoryInterface $loaderFactory) { $this->loaderFactory = $loaderFactory; } /** * @param ExtensionInterface[] $extensions * @param CompilerPassInterface[] $compilerPasses * @param string[] $configFiles */ public function create(array $extensions, array $compilerPasses, array $configFiles) : \RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder { \RectorPrefix20211231\Webmozart\Assert\Assert::allString($configFiles); \RectorPrefix20211231\Webmozart\Assert\Assert::allFile($configFiles); $containerBuilder = new \RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder(); $this->registerExtensions($containerBuilder, $extensions); $this->registerConfigFiles($containerBuilder, $configFiles); $this->registerCompilerPasses($containerBuilder, $compilerPasses); // this calls load() method in every extensions // ensure these extensions are implicitly loaded $compilerPassConfig = $containerBuilder->getCompilerPassConfig(); $compilerPassConfig->setMergePass(new \RectorPrefix20211231\Symplify\SymplifyKernel\DependencyInjection\LoadExtensionConfigsCompilerPass()); return $containerBuilder; } /** * @param ExtensionInterface[] $extensions */ private function registerExtensions(\RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder $containerBuilder, array $extensions) : void { foreach ($extensions as $extension) { $containerBuilder->registerExtension($extension); } } /** * @param CompilerPassInterface[] $compilerPasses */ private function registerCompilerPasses(\RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder $containerBuilder, array $compilerPasses) : void { foreach ($compilerPasses as $compilerPass) { $containerBuilder->addCompilerPass($compilerPass); } } /** * @param string[] $configFiles */ private function registerConfigFiles(\RectorPrefix20211231\Symfony\Component\DependencyInjection\ContainerBuilder $containerBuilder, array $configFiles) : void { $delegatingLoader = $this->loaderFactory->create($containerBuilder, \getcwd()); foreach ($configFiles as $configFile) { $delegatingLoader->load($configFile); } } }