/** * Add an event subscriber * * @param EventSubscriberInterface $subscriber The event subscriber to add * @return EventDispatcherAbstract */ public function addEventSubscriber(EventSubscriberInterface $subscriber, $priority = null) { $handle = $subscriber->getHandle(); if (!isset($this->_subscribers[$handle])) { $subscriptions = $subscriber->getSubscriptions(); $priority = is_int($priority) ? $priority : $subscriber->getPriority(); foreach ($subscriptions as $name => $listener) { $this->addEventListener($name, $listener, $priority); } $this->_subscribers[$handle] = $subscriber; } return $this; }