for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Antidot\Event;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\EventDispatcher\ListenerProviderInterface;
use Psr\EventDispatcher\StoppableEventInterface;
class EventDispatcher implements EventDispatcherInterface
{
private ListenerProviderInterface $listenerProvider;
public function __construct(ListenerProviderInterface $listenerProvider)
$this->listenerProvider = $listenerProvider;
}
/**
* @param StoppableEventInterface $event
* @return object
*/
public function dispatch(object $event): object
$listeners = $this->listenerProvider->getListenersForEvent($event);
foreach ($listeners as $listener) {
if ($event->isPropagationStopped()) {
return $event;
$listener($event);