public function testEventManagerTrigger() { $eventManager = new EventManager(); $event = new Event('event1'); $event->setParam('count', 0); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 2); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 2); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 1); $eventManager->addListener('event2', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }); include_once __DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'ListenerForTesting.php'; $listenerObj = new ListenerForTesting(); $eventManager->addListenerObject($listenerObj); $eventManager->trigger($event); $this->assertEquals($event->getParam('count'), 5); }
/** * Get EventManagr * * @return \Tlumx\EventManager\EventManager * @throws \RuntimeException */ public function getEventManager() { if (!$this->eventManager) { $this->eventManager = new EventManager(); $listeners = $this->getConfig('listeners'); if (is_array($listeners)) { foreach ($listeners as $listener) { if (!class_exists($listener)) { throw new \RuntimeException(sprintf('Event listener class "%s" does not exist', $listener)); } $instance = new $listener(); $this->eventManager->addListenerObject($instance); } } } return $this->eventManager; }