class MergeExtensionConfigurationPass

Same name in this branch

Merges extension configs into the container builder

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

Expanded class hierarchy of MergeExtensionConfigurationPass

1 file declares its use of MergeExtensionConfigurationPass
MergeExtensionConfigurationPass.php in drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php

File

drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php, line 21

Namespace

Symfony\Component\DependencyInjection\Compiler
View source
class MergeExtensionConfigurationPass implements CompilerPassInterface {

  /**
   * {@inheritDoc}
   */
  public function process(ContainerBuilder $container) {
    $parameters = $container
      ->getParameterBag()
      ->all();
    $definitions = $container
      ->getDefinitions();
    $aliases = $container
      ->getAliases();
    foreach ($container
      ->getExtensions() as $name => $extension) {
      if (!($config = $container
        ->getExtensionConfig($name))) {

        // this extension was not called
        continue;
      }
      $config = $container
        ->getParameterBag()
        ->resolveValue($config);
      $tmpContainer = new ContainerBuilder($container
        ->getParameterBag());
      $tmpContainer
        ->addObjectResource($extension);
      $extension
        ->load($config, $tmpContainer);
      $container
        ->merge($tmpContainer);
    }
    $container
      ->addDefinitions($definitions);
    $container
      ->addAliases($aliases);
    $container
      ->getParameterBag()
      ->add($parameters);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MergeExtensionConfigurationPass::process public function You can modify the container here before it is dumped to PHP code. Overrides CompilerPassInterface::process 1