Вход Регистрация
Файл: vendor/symfony/http-kernel/Bundle/BundleExtension.php
Строк: 205
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpKernelBundle;

use 
SymfonyComponentConfigDefinitionConfiguration;
use 
SymfonyComponentConfigDefinitionConfigurationInterface;
use 
SymfonyComponentDependencyInjectionContainerBuilder;
use 
SymfonyComponentDependencyInjectionExtensionConfigurableExtensionInterface;
use 
SymfonyComponentDependencyInjectionExtensionExtension;
use 
SymfonyComponentDependencyInjectionExtensionExtensionTrait;
use 
SymfonyComponentDependencyInjectionExtensionPrependExtensionInterface;
use 
SymfonyComponentDependencyInjectionLoaderConfiguratorContainerConfigurator;

/**
 * @author Yonel Ceruto <yonelceruto@gmail.com>
 *
 * @internal
 */
class BundleExtension extends Extension implements PrependExtensionInterface
{
    use 
ExtensionTrait;

    public function 
__construct(
        private 
ConfigurableExtensionInterface $subject,
        private 
string $alias,
    ) {
    }

    public function 
getConfiguration(array $configContainerBuilder $container): ?ConfigurationInterface
    
{
        return new 
Configuration($this->subject$container$this->getAlias());
    }

    public function 
getAlias(): string
    
{
        return 
$this->alias;
    }

    public function 
prepend(ContainerBuilder $container): void
    
{
        
$callback = function (ContainerConfigurator $configurator) use ($container) {
            
$this->subject->prependExtension($configurator$container);
        };

        
$this->executeConfiguratorCallback($container$callback$this->subject);
    }

    public function 
load(array $configsContainerBuilder $container): void
    
{
        
$config $this->processConfiguration($this->getConfiguration([], $container), $configs);

        
$callback = function (ContainerConfigurator $configurator) use ($config$container) {
            
$this->subject->loadExtension($config$configurator$container);
        };

        
$this->executeConfiguratorCallback($container$callback$this->subject);
    }
}
Онлайн: 3
Реклама