/** * Возвращает менеджер событий * @internal * @throws RequiredDependencyException если фабрика событий и менеджеров событий не была внедрена * @return IEventManager */ public function getEventManager() { if (!$this->traitEventManager) { if (!$this->traitEventFactory) { $this->traitEventFactory = new EventFactory(); } $this->traitEventManager = $this->traitEventFactory->createEventManager(); $this->bindLocalEvents(); } return $this->traitEventManager; }
/** * {@inheritdoc} */ public function fireEvent($eventType, $target, array $params = [], array $tags = []) { if (!isset($this->eventHandlers[$eventType]) && is_null($this->attachedManagers)) { return false; } $event = $this->eventFactory->createEvent($eventType, $target, $params, $tags); return $this->propagateEvent($eventType, $event); }