/**
  * {@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;
     });
 }
Exemplo n.º 4
0
 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);
 }