/** * @param Listener $listener * @return $this */ public function addListener(Listener $listener) { $eventName = $listener->getEventName(); if (!isset($this->listeners[$eventName])) { $this->listeners[$eventName] = []; } $this->listeners[$eventName][] = $listener; return $this; }