eventIdentifier property. */ public function setEventManager(EventManagerInterface $events) { $identifiers = [self::class, static::class]; if (isset($this->eventIdentifier)) { if ( (is_string($this->eventIdentifier)) || (is_array($this->eventIdentifier)) || $this->eventIdentifier instanceof Traversable ) { $identifiers = array_unique(array_merge($identifiers, (array) $this->eventIdentifier)); } elseif (is_object($this->eventIdentifier)) { $identifiers[] = $this->eventIdentifier; } // silently ignore invalid eventIdentifier types } $events->setIdentifiers($identifiers); $this->events = $events; if (method_exists($this, 'attachDefaultListeners')) { $this->attachDefaultListeners(); } } /** * Retrieve the event manager * * Lazy-loads an EventManager instance if none registered. * * @return EventManagerInterface */ public function getEventManager() { if (! $this->events instanceof EventManagerInterface) { $this->setEventManager(new EventManager()); } return $this->events; } }