diff --git a/DependencyInjection/LoggerPass.php b/DependencyInjection/LoggerPass.php index 2cc75950fd..7566d7358c 100644 --- a/DependencyInjection/LoggerPass.php +++ b/DependencyInjection/LoggerPass.php @@ -27,7 +27,9 @@ class LoggerPass implements CompilerPassInterface { public function process(ContainerBuilder $container): void { - $container->setAlias(LoggerInterface::class, 'logger'); + if (!$container->has(LoggerInterface::class)) { + $container->setAlias(LoggerInterface::class, 'logger'); + } if ($container->has('logger')) { return; diff --git a/Tests/DependencyInjection/LoggerPassTest.php b/Tests/DependencyInjection/LoggerPassTest.php index cb504877cd..33227e49cb 100644 --- a/Tests/DependencyInjection/LoggerPassTest.php +++ b/Tests/DependencyInjection/LoggerPassTest.php @@ -53,4 +53,15 @@ public function testRegisterLogger() $this->assertSame(Logger::class, $definition->getClass()); $this->assertFalse($definition->isPublic()); } + + public function testAutowiringAliasIsPreserved() + { + $container = new ContainerBuilder(); + $container->setParameter('kernel.debug', false); + $container->setAlias(LoggerInterface::class, 'my_logger'); + + (new LoggerPass())->process($container); + + $this->assertSame('my_logger', (string) $container->getAlias(LoggerInterface::class)); + } }