/** * @param Container $container */ public function register(Container $container) { if (!$container instanceof Application) { throw new \InvalidArgumentException("invalid application"); } /** * pimple aware event dispatcher */ $container->register(new PimpleAwareEventDispatcherServiceProvider()); /** * alias for auto injection */ $container[PimpleAwareEventDispatcher::class] = function () use($container) { return $container["dispatcher"]; }; /** * register default event subscriber */ $container->registerSubscriber(ExceptionHandler::class, function () use($container) { return new ExceptionHandler($container["config"], $container["monolog"]); }); $container->registerSubscriber(CliExceptionHandler::class, function () use($container) { return new CliExceptionHandler($container["config"], $container["monolog"]); }); }
/** * {@inheritdoc} */ public function subscribe(Container $container, EventDispatcherInterface $dispatcher) { if (!$container instanceof Singo) { throw new \InvalidArgumentException("Container must be instance of " . Singo::class); } /** * register login log subscriber */ $container->registerSubscriber(LogLogin::class, function () use($container) { return new LogLogin($container["monolog"]); }); }