protected function buildEventManager()
{
$eventManager = new EventManager();
if (isset($this->settings['doctrine']['eventSubscribers']) && is_array($this->settings['doctrine']['eventSubscribers'])) {
foreach ($this->settings['doctrine']['eventSubscribers'] as $subscriberClassName) {
$subscriber = $this->objectManager->get($subscriberClassName);
if (!$subscriber instanceof EventSubscriber) {
throw new IllegalObjectTypeException('Doctrine eventSubscribers must extend class \\Doctrine\\Common\\EventSubscriber, ' . $subscriberClassName . ' fails to do so.', 1366018193);
}
$eventManager->addEventSubscriber($subscriber);
}
}
if (isset($this->settings['doctrine']['eventListeners']) && is_array($this->settings['doctrine']['eventListeners'])) {
foreach ($this->settings['doctrine']['eventListeners'] as $listenerOptions) {
$listener = $this->objectManager->get($listenerOptions['listener']);
$eventManager->addEventListener($listenerOptions['events'], $listener);
}
}
return $eventManager;
}