/** * {@inheritdoc} */ public function dispatch($eventName, SymfonyEvent $event = null) { parent::dispatch($eventName, $event); if (null === $event) { $event = new SymfonyEvent(); } $this->em->emit(new SilexEvent($eventName, $event)); return $event; }
public function testDispatcherTriggersEventManager() { $expected = array('test event'); $events = array(); $em = new EventManager(); $em->add(new AnonymousListener(function (SilexEvent $event) use(&$events) { $events[] = $event->getName(); })); $dispatcher = new CustomEventDispatcher(); $dispatcher->setEventManager($em); $dispatcher->dispatch('test event', new Event()); $this->assertEquals($expected, $events); }
/** * {@inheritdoc} */ public function register(Application $app) { $app['dispatcher_class'] = 'PHPExtra\\EventManager\\Silex\\CustomEventDispatcher'; $app['event_manager'] = $app->share(function (Application $app) { $em = new EventManager(); if ($app['debug'] == true) { $em->setThrowExceptions(true); } if ($app['logger'] !== null) { $em->setLogger($app['logger']); } return $em; }); $app['event_manager.proxy_mapper'] = $app->share(function (Application $app) { return new ProxyMapper(); }); $app->extend('dispatcher', function (CustomEventDispatcher $dispatcher, Application $app) { $dispatcher->setProxyMapper($app['event_manager.proxy_mapper'])->setEventManager($app['event_manager']); return $dispatcher; }); }
public function testEmittedEventRunsThroughStandardListenersInProperOrder() { $em = new EventManager(); $event = new DummyCancellableEvent(); $listener = new \DummyListener1(); $em->add($listener)->emit($event); $expected = array('Dummy 1.1', 'Dummy 1.2', 'Dummy 1.3', 'Dummy 1.4'); $this->assertEquals($expected, $event->events); }
/** * @param Worker $worker * @param Event $event */ protected function onWorkerStop(Worker $worker, Event $event) { $this->stopwatch->stop($this->getWorkerName($worker)); parent::onWorkerStop($worker, $event); }