From e38aa5574fa62b2f42ab4f127063339212335990 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Thu, 13 Oct 2022 19:51:15 +0200 Subject: [PATCH] [DoctrineBridge] Implement EventManager::getAllListeners() --- .../Doctrine/ContainerAwareEventManager.php | 18 +++++++++++++----- .../Tests/ContainerAwareEventManagerTest.php | 9 +++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php b/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php index 48385c93ac19e..bb0f62a95c76f 100644 --- a/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php +++ b/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php @@ -72,15 +72,23 @@ public function dispatchEvent($eventName, EventArgs $eventArgs = null) */ public function getListeners($event = null) { + if (null === $event) { + return $this->getAllListeners(); + } if (!$this->initializedSubscribers) { $this->initializeSubscribers(); } - if (null !== $event) { - if (!isset($this->initialized[$event])) { - $this->initializeListeners($event); - } + if (!isset($this->initialized[$event])) { + $this->initializeListeners($event); + } - return $this->listeners[$event]; + return $this->listeners[$event]; + } + + public function getAllListeners(): array + { + if (!$this->initializedSubscribers) { + $this->initializeSubscribers(); } foreach ($this->listeners as $event => $listeners) { diff --git a/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php b/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php index e9d260ec26608..868fc25cf6151 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php @@ -165,6 +165,15 @@ public function testGetListeners() $this->assertSame([$listener1, $listener2], array_values($this->evm->getListeners()['foo'])); } + public function testGetAllListeners() + { + $this->container->set('lazy', $listener1 = new MyListener()); + $this->evm->addEventListener('foo', 'lazy'); + $this->evm->addEventListener('foo', $listener2 = new MyListener()); + + $this->assertSame([$listener1, $listener2], array_values($this->evm->getAllListeners()['foo'])); + } + public function testRemoveEventListener() { $this->container->set('lazy', $listener1 = new MyListener()); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy