From 646878d072c9c7893dbbbf495acf97fdc213d7b0 Mon Sep 17 00:00:00 2001 From: Antonio Pauletich Date: Wed, 13 May 2020 18:27:55 +0200 Subject: [PATCH] Fix register event listeners compiler pass --- .../DependencyInjection/RegisterListenersPass.php | 6 +++--- .../DependencyInjection/RegisterListenersPassTest.php | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) 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 = [ [