@@ 80-90 (lines=11) @@ | ||
77 | } |
|
78 | } |
|
79 | ||
80 | protected function getListeners(object $event): iterable |
|
81 | { |
|
82 | $queue = new PriorityQueue(); |
|
83 | foreach ($this->providers as $provider) { |
|
84 | $q = $provider->getListenersForEvent($event); |
|
85 | if (count($q)) { |
|
86 | $queue = $queue->combine($q); |
|
87 | } |
|
88 | } |
|
89 | return $queue; |
|
90 | } |
|
91 | } |
|
92 |
@@ 41-50 (lines=10) @@ | ||
38 | * An iterable (array, iterator, or generator) of callables. Each |
|
39 | * callable MUST be type-compatible with $event. |
|
40 | */ |
|
41 | public function getListenersForEvent(object $event): iterable |
|
42 | { |
|
43 | $queue = new PriorityQueue(); |
|
44 | foreach ($this->listened as $class => $q) { |
|
45 | if (is_a($event, $class) && count($q)) { |
|
46 | $queue = $queue->combine($q); |
|
47 | } |
|
48 | } |
|
49 | return $queue; |
|
50 | } |
|
51 | ||
52 | /** |
|
53 | * Attach a listener (with default priority 50) to the provider |