/** * {@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; }); }