/** * @param $eventName * @param Event $event * @return \App\EventDispatcher\Event */ public function dispatch($eventName, Event $event = null) { if ($event === null) { $event = new Event(); } $event->setDispatcher($this); $event->setName($eventName); $event->setPixie($this->pixie); if (!isset($this->listeners[$eventName])) { return $event; } $this->doDispatch($this->getListeners($eventName), $eventName, $event); return $event; }