[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ -> MergeExtensionConfigurationPass.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\DependencyInjection\Compiler;
  13  
  14  use Symfony\Component\DependencyInjection\ContainerBuilder;
  15  use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
  16  
  17  /**
  18   * Merges extension configs into the container builder.
  19   *
  20   * @author Fabien Potencier <fabien@symfony.com>
  21   */
  22  class MergeExtensionConfigurationPass implements CompilerPassInterface
  23  {
  24      /**
  25       * {@inheritdoc}
  26       */
  27      public function process(ContainerBuilder $container)
  28      {
  29          $parameters = $container->getParameterBag()->all();
  30          $definitions = $container->getDefinitions();
  31          $aliases = $container->getAliases();
  32  
  33          foreach ($container->getExtensions() as $extension) {
  34              if ($extension instanceof PrependExtensionInterface) {
  35                  $extension->prepend($container);
  36              }
  37          }
  38  
  39          foreach ($container->getExtensions() as $name => $extension) {
  40              if (!$config = $container->getExtensionConfig($name)) {
  41                  // this extension was not called
  42                  continue;
  43              }
  44              $config = $container->getParameterBag()->resolveValue($config);
  45  
  46              $tmpContainer = new ContainerBuilder($container->getParameterBag());
  47              $tmpContainer->setResourceTracking($container->isTrackingResources());
  48              $tmpContainer->addObjectResource($extension);
  49  
  50              $extension->load($config, $tmpContainer);
  51  
  52              $container->merge($tmpContainer);
  53              $container->getParameterBag()->add($parameters);
  54          }
  55  
  56          $container->addDefinitions($definitions);
  57          $container->addAliases($aliases);
  58      }
  59  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1