public function ResolveParameterPlaceHoldersPass::process

Processes the ContainerBuilder to resolve parameter placeholders.

Parameters

ContainerBuilder $container:

Overrides CompilerPassInterface::process

File

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

Class

ResolveParameterPlaceHoldersPass
Resolves all parameter placeholders "%somevalue%" to their real values.

Namespace

Symfony\Component\DependencyInjection\Compiler

Code

public function process(ContainerBuilder $container) {
  $parameterBag = $container
    ->getParameterBag();
  foreach ($container
    ->getDefinitions() as $id => $definition) {
    try {
      $definition
        ->setClass($parameterBag
        ->resolveValue($definition
        ->getClass()));
      $definition
        ->setFile($parameterBag
        ->resolveValue($definition
        ->getFile()));
      $definition
        ->setArguments($parameterBag
        ->resolveValue($definition
        ->getArguments()));
      $calls = array();
      foreach ($definition
        ->getMethodCalls() as $name => $arguments) {
        $calls[$parameterBag
          ->resolveValue($name)] = $parameterBag
          ->resolveValue($arguments);
      }
      $definition
        ->setMethodCalls($calls);
      $definition
        ->setProperties($parameterBag
        ->resolveValue($definition
        ->getProperties()));
    } catch (ParameterNotFoundException $e) {
      $e
        ->setSourceId($id);
      throw $e;
    }
  }
  $aliases = array();
  foreach ($container
    ->getAliases() as $name => $target) {
    $aliases[$parameterBag
      ->resolveValue($name)] = $parameterBag
      ->resolveValue($target);
  }
  $container
    ->setAliases($aliases);
  $parameterBag
    ->resolve();
}