File manager - Edit - /var/www/payraty/helpdesk/vendor/rector/rector/vendor/symplify/symplify-kernel/src/ContainerBuilderFactory.php
Back
<?php declare (strict_types=1); namespace RectorPrefix202208\Symplify\SymplifyKernel; use RectorPrefix202208\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use RectorPrefix202208\Symfony\Component\DependencyInjection\ContainerBuilder; use RectorPrefix202208\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; use RectorPrefix202208\Symplify\SymplifyKernel\Contract\Config\LoaderFactoryInterface; use RectorPrefix202208\Symplify\SymplifyKernel\DependencyInjection\LoadExtensionConfigsCompilerPass; use RectorPrefix202208\Webmozart\Assert\Assert; /** * @see \Symplify\SymplifyKernel\Tests\ContainerBuilderFactory\ContainerBuilderFactoryTest */ final class ContainerBuilderFactory { /** * @var \Symplify\SymplifyKernel\Contract\Config\LoaderFactoryInterface */ private $loaderFactory; public function __construct(LoaderFactoryInterface $loaderFactory) { $this->loaderFactory = $loaderFactory; } /** * @param string[] $configFiles * @param CompilerPassInterface[] $compilerPasses * @param ExtensionInterface[] $extensions */ public function create(array $configFiles, array $compilerPasses, array $extensions) : ContainerBuilder { Assert::allIsAOf($extensions, ExtensionInterface::class); Assert::allIsAOf($compilerPasses, CompilerPassInterface::class); Assert::allString($configFiles); Assert::allFile($configFiles); $containerBuilder = new 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 LoadExtensionConfigsCompilerPass()); return $containerBuilder; } /** * @param ExtensionInterface[] $extensions */ private function registerExtensions(ContainerBuilder $containerBuilder, array $extensions) : void { foreach ($extensions as $extension) { $containerBuilder->registerExtension($extension); } } /** * @param CompilerPassInterface[] $compilerPasses */ private function registerCompilerPasses(ContainerBuilder $containerBuilder, array $compilerPasses) : void { foreach ($compilerPasses as $compilerPass) { $containerBuilder->addCompilerPass($compilerPass); } } /** * @param string[] $configFiles */ private function registerConfigFiles(ContainerBuilder $containerBuilder, array $configFiles) : void { $delegatingLoader = $this->loaderFactory->create($containerBuilder, \getcwd()); foreach ($configFiles as $configFile) { $delegatingLoader->load($configFile); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings