| @@ 17-31 (lines=15) @@ | ||
| 14 | { |
|
| 15 | $event = new Event(); |
|
| 16 | ||
| 17 | $provider = new class implements ListenerProviderInterface |
|
| 18 | { |
|
| 19 | public function getListenersForEvent(object $event): iterable |
|
| 20 | { |
|
| 21 | yield function (Event $event) { |
|
| 22 | $event->register(1); |
|
| 23 | }; |
|
| 24 | yield function (Event $event) { |
|
| 25 | $event->register(2); |
|
| 26 | }; |
|
| 27 | yield function (Event $event) { |
|
| 28 | $event->register(3); |
|
| 29 | }; |
|
| 30 | } |
|
| 31 | }; |
|
| 32 | ||
| 33 | $dispatcher = new Dispatcher($provider); |
|
| 34 | $dispatcher->dispatch($event); |
|
| @@ 43-58 (lines=16) @@ | ||
| 40 | { |
|
| 41 | $event = new StoppableEvent(); |
|
| 42 | ||
| 43 | $provider = new class implements ListenerProviderInterface |
|
| 44 | { |
|
| 45 | public function getListenersForEvent(object $event): iterable |
|
| 46 | { |
|
| 47 | yield function (StoppableEvent $event) { |
|
| 48 | $event->register(1); |
|
| 49 | $event->stopPropogation(); |
|
| 50 | }; |
|
| 51 | yield function (StoppableEvent $event) { |
|
| 52 | $event->register(2); |
|
| 53 | }; |
|
| 54 | yield function (StoppableEvent $event) { |
|
| 55 | $event->register(3); |
|
| 56 | }; |
|
| 57 | } |
|
| 58 | }; |
|
| 59 | ||
| 60 | $dispatcher = new Dispatcher($provider); |
|
| 61 | $dispatcher->dispatch($event); |
|