src/AppBundle/EventListener/EventPublisherListener.php line 20

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventListener;
  3. use CodersLab\Lms\SharedKernel\Domain\Bus\EventBus;
  4. use CodersLab\Lms\SharedKernel\Domain\Bus\IEventRecorder;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. final class EventPublisherListener
  7. {
  8.     private EventBus $eventBus;
  9.     private IEventRecorder $eventRecorder;
  10.     public function __construct(EventBus $eventBusIEventRecorder $eventRecorder)
  11.     {
  12.         $this->eventBus $eventBus;
  13.         $this->eventRecorder $eventRecorder;
  14.     }
  15.     public function __invoke(ResponseEvent $event): void
  16.     {
  17.         foreach ($this->eventRecorder->pullEvents() as $recordedEvent) {
  18.             $this->eventBus->notify($recordedEvent);
  19.         }
  20.     }
  21. }