You are here

RemovePrivateAliasesPass.php in Service Container 7

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
View source
<?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 Symfony\Component\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\ContainerBuilder;

/**
 * Remove private aliases from the container. They were only used to establish
 * dependencies between services, and these dependencies have been resolved in
 * one of the previous passes.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class RemovePrivateAliasesPass implements CompilerPassInterface {

  /**
   * Removes private aliases from the ContainerBuilder.
   *
   * @param ContainerBuilder $container
   */
  public function process(ContainerBuilder $container) {
    $compiler = $container
      ->getCompiler();
    $formatter = $compiler
      ->getLoggingFormatter();
    foreach ($container
      ->getAliases() as $id => $alias) {
      if ($alias
        ->isPublic()) {
        continue;
      }
      $container
        ->removeAlias($id);
      $compiler
        ->addLogMessage($formatter
        ->formatRemoveService($this, $id, 'private alias'));
    }
  }

}

Classes

Namesort descending Description
RemovePrivateAliasesPass Remove private aliases from the container. They were only used to establish dependencies between services, and these dependencies have been resolved in one of the previous passes.