The doc comment array<class-string,list<callable>> at position 2 could not be parsed: Unknown type name 'class-string' at position 2 in array<class-string,list<callable>>.
Loading history...
15
private array $specificListeners = [];
16
17
13
public function __construct()
18
{
19
13
}
20
21
/**
22
* @param list<callable> $genericListeners
23
*/
24
13
public function registerGenericListeners(array $genericListeners): void
25
{
26
13
$this->genericListeners = $genericListeners;
27
}
28
/**
29
* @param class-string $event
30
*/
31
6
public function registerSpecificListener(string $event, callable $listener): void
32
{
33
6
$this->specificListeners[$event][] = $listener;
34
}
35
36
33
public function dispatch(object $event): void
37
{
38
33
foreach ($this->genericListeners as $listener) {
39
20
$this->notifyListener($listener, $event);
40
}
41
42
33
foreach ($this->specificListeners[get_class($event)] ?? [] as $listener) {
43
6
$this->notifyListener($listener, $event);
44
}
45
}
46
47
26
private function notifyListener(callable $listener, object $event): void