diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php index 6270875bec3d5..0061a577c7e66 100644 --- a/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php +++ b/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php @@ -30,7 +30,9 @@ class LoggerPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - $container->setAlias(LoggerInterface::class, 'logger'); + if (!$container->has(LoggerInterface::class)) { + $container->setAlias(LoggerInterface::class, 'logger'); + } if ($container->has('logger')) { return; diff --git a/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LoggerPassTest.php b/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LoggerPassTest.php index cb504877cdc44..33227e49cbc7f 100644 --- a/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/LoggerPassTest.php +++ b/src/Symfony/Component/HttpKernel/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)); + } }