diff --git a/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php b/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php index 9c88809de059..3ae1136c4c97 100644 --- a/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php +++ b/src/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php @@ -56,12 +56,12 @@ public function process(ContainerBuilder $container) return; } + $aliases = []; + if ($container->hasParameter($this->eventAliasesParameter)) { $aliases = $container->getParameter($this->eventAliasesParameter); - $container->getParameterBag()->remove($this->eventAliasesParameter); - } else { - $aliases = []; } + $definition = $container->findDefinition($this->dispatcherService); foreach ($container->findTaggedServiceIds($this->listenerTag, true) as $id => $events) { diff --git a/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php index 5252664a9f99..42870b88876e 100644 --- a/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php +++ b/src/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php @@ -213,17 +213,22 @@ public function testInvokableEventListener() public function testAliasedEventListener(): void { $container = new ContainerBuilder(); - $container->setParameter('event_dispatcher.event_aliases', [AliasedEvent::class => 'aliased_event']); + $eventAliases = [AliasedEvent::class => 'aliased_event']; + $container->setParameter('event_dispatcher.event_aliases', $eventAliases); $container->register('foo', InvokableListenerService::class)->addTag('kernel.event_listener', ['event' => AliasedEvent::class, 'method' => 'onEvent']); $container->register('bar', InvokableListenerService::class)->addTag('kernel.event_listener', ['event' => CustomEvent::class, 'method' => 'onEvent']); $container->register('event_dispatcher'); - $eventAliasPass = new AddEventAliasesPass([CustomEvent::class => 'custom_event']); + $customEventAlias = [CustomEvent::class => 'custom_event']; + $eventAliasPass = new AddEventAliasesPass($customEventAlias); $eventAliasPass->process($container); $registerListenersPass = new RegisterListenersPass(); $registerListenersPass->process($container); + $this->assertTrue($container->hasParameter('event_dispatcher.event_aliases')); + $this->assertSame(array_merge($eventAliases, $customEventAlias), $container->getParameter('event_dispatcher.event_aliases')); + $definition = $container->getDefinition('event_dispatcher'); $expectedCalls = [ [