Symfony\Component\DependencyInjection\ContainerBuilder::setAlias PHP Method

setAlias() public method

Sets an alias for an existing service.
public setAlias ( string $alias, string | Alias $id )
$alias string The alias to create
$id string | Alias The service to alias
    public function setAlias($alias, $id)
    {
        $alias = strtolower($alias);

        if (is_string($id)) {
            $id = new Alias($id);
        } elseif (!$id instanceof Alias) {
            throw new InvalidArgumentException('$id must be a string, or an Alias object.');
        }

        if ($alias === (string) $id) {
            throw new InvalidArgumentException(sprintf('An alias can not reference itself, got a circular reference on "%s".', $alias));
        }

        unset($this->definitions[$alias]);

        $this->aliasDefinitions[$alias] = $id;
    }

Usage Example

 /**
  * {@inheritDoc}
  */
 public function load(array $configs, ContainerBuilder $container)
 {
     $configuration = new Configuration();
     $config = $this->processConfiguration($configuration, $configs);
     $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
     $loader->load('shorty.xml');
     foreach ($config['providers'] as $providerName => $providerConfiguration) {
         switch ($providerConfiguration['id']) {
             case 'google':
                 $definition = new Definition($container->getParameter('rezzza.shorty.google.class'), array($providerConfiguration['key']));
                 $definition->addMethodCall('setHttpAdapter', array(new Definition($providerConfiguration['http_adapter'])));
                 $container->setDefinition($this->getShortyProviderName($providerName), $definition);
                 break;
             case 'bitly':
                 $definition = new Definition($container->getParameter('rezzza.shorty.bitly.class'), array($providerConfiguration['access_token']));
                 $definition->addMethodCall('setHttpAdapter', array(new Definition($providerConfiguration['http_adapter'])));
                 $container->setDefinition($this->getShortyProviderName($providerName), $definition);
                 break;
             case 'chain':
                 $definition = new Definition($container->getParameter('rezzza.shorty.chain.class'));
                 foreach ($providerConfiguration['providers'] as $provider) {
                     $definition->addMethodCall('addProvider', array(new Reference($this->getShortyProviderName($provider))));
                 }
                 $container->setDefinition($this->getShortyProviderName($providerName), $definition);
                 break;
             default:
                 $container->setAlias($this->getShortyProviderName($providerName), $providerConfiguration['id']);
                 break;
         }
     }
     if (isset($config['default_provider'])) {
         $container->setAlias('rezzza.shorty', $this->getShortyProviderName($config['default_provider']));
     }
 }
All Usage Examples Of Symfony\Component\DependencyInjection\ContainerBuilder::setAlias