2021-05-10 00:23:30 +00:00
< ? 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 .
*/
2021-06-05 14:17:34 +00:00
namespace RectorPrefix20210605\Symfony\Component\DependencyInjection\Compiler ;
2021-05-10 00:23:30 +00:00
2021-06-05 14:17:34 +00:00
use RectorPrefix20210605\Symfony\Component\DependencyInjection\Alias ;
use RectorPrefix20210605\Symfony\Component\DependencyInjection\ContainerBuilder ;
use RectorPrefix20210605\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException ;
2021-05-10 00:23:30 +00:00
/**
* Sets a service to be an alias of another one , given a format pattern .
*/
2021-06-05 14:17:34 +00:00
class AutoAliasServicePass implements \RectorPrefix20210605\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface
2021-05-10 00:23:30 +00:00
{
/**
* { @ inheritdoc }
*/
2021-06-05 14:17:34 +00:00
public function process ( \RectorPrefix20210605\Symfony\Component\DependencyInjection\ContainerBuilder $container )
2021-05-10 00:23:30 +00:00
{
foreach ( $container -> findTaggedServiceIds ( 'auto_alias' ) as $serviceId => $tags ) {
foreach ( $tags as $tag ) {
if ( ! isset ( $tag [ 'format' ])) {
2021-06-05 14:17:34 +00:00
throw new \RectorPrefix20210605\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException ( \sprintf ( 'Missing tag information "format" on auto_alias service "%s".' , $serviceId ));
2021-05-10 00:23:30 +00:00
}
$aliasId = $container -> getParameterBag () -> resolveValue ( $tag [ 'format' ]);
if ( $container -> hasDefinition ( $aliasId ) || $container -> hasAlias ( $aliasId )) {
2021-06-05 14:17:34 +00:00
$container -> setAlias ( $serviceId , new \RectorPrefix20210605\Symfony\Component\DependencyInjection\Alias ( $aliasId , \true ));
2021-05-10 00:23:30 +00:00
}
}
}
}
}