use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\Reference;
final class AliasDeprecatedPublicServicesPass extends AbstractRecursivePass
{ private array
$aliases =
[];
protected function processValue(mixed
$value, bool
$isRoot = false
): mixed
{ if ($value instanceof Reference &&
isset($this->aliases
[$id =
(string) $value])) { return new Reference($this->aliases
[$id],
$value->
getInvalidBehavior());
} return parent::
processValue($value,
$isRoot);
} public function process(ContainerBuilder
$container): void
{ foreach ($container->
findTaggedServiceIds('container.private'
) as $id =>
$tags) { if (null ===
$package =
$tags[0
]['package'
] ?? null
) { throw new InvalidArgumentException(sprintf('The "package" attribute is mandatory for the "container.private" tag on the "%s" service.',
$id));
}