Skip to content

Commit 8dbbec5

Browse files
committed
[DoctrineBridge] Implement EventManager::getAllListeners()
1 parent 49a19ea commit 8dbbec5

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

ContainerAwareEventManager.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,23 @@ public function dispatchEvent($eventName, EventArgs $eventArgs = null)
7272
*/
7373
public function getListeners($event = null)
7474
{
75+
if (null === $event) {
76+
return $this->getAllListeners();
77+
}
7578
if (!$this->initializedSubscribers) {
7679
$this->initializeSubscribers();
7780
}
78-
if (null !== $event) {
79-
if (!isset($this->initialized[$event])) {
80-
$this->initializeListeners($event);
81-
}
81+
if (!isset($this->initialized[$event])) {
82+
$this->initializeListeners($event);
83+
}
8284

83-
return $this->listeners[$event];
85+
return $this->listeners[$event];
86+
}
87+
88+
public function getAllListeners(): array
89+
{
90+
if (!$this->initializedSubscribers) {
91+
$this->initializeSubscribers();
8492
}
8593

8694
foreach ($this->listeners as $event => $listeners) {

Tests/ContainerAwareEventManagerTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,15 @@ public function testGetListeners()
165165
$this->assertSame([$listener1, $listener2], array_values($this->evm->getListeners()['foo']));
166166
}
167167

168+
public function testGetAllListeners()
169+
{
170+
$this->container->set('lazy', $listener1 = new MyListener());
171+
$this->evm->addEventListener('foo', 'lazy');
172+
$this->evm->addEventListener('foo', $listener2 = new MyListener());
173+
174+
$this->assertSame([$listener1, $listener2], array_values($this->evm->getAllListeners()['foo']));
175+
}
176+
168177
public function testRemoveEventListener()
169178
{
170179
$this->container->set('lazy', $listener1 = new MyListener());

0 commit comments

Comments
 (0)