for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace BornFree\TacticianDomainEvent\EventDispatcher;
class EventDispatcher implements EventDispatcherInterface, ContainsListenersInterface
{
/**
* @var callable[][]
*/
private $listeners = [];
* @inheritdoc
public function dispatch($event)
$name = $event instanceof NamedEvent ? $event->getName() : get_class($event);
foreach ($this->getListeners($name) as $listener) {
$listener($event);
}
public function addListener($eventName, callable $listener)
$this->listeners[$eventName][] = $listener;
public function getListeners($eventName)
if (! $this->hasListeners($eventName)) {
return [];
return $this->listeners[$eventName];
public function hasListeners($eventName)
return isset($this->listeners[$eventName]);