/** * Constructor. * * @param array $values Defaults to override */ public function __construct(array $values = []) { parent::__construct(); $this['debug'] = false; $this['app.catch_errors'] = true; $this['app.handler'] = $this->share(function ($app) { $handler = new Handler(null, null, ['iterate' => true]); $handler->handlers(array_map([$handler, 'handler'], $app['app.handlers'])); return $handler; }); $this['app.handlers'] = $this->share(function ($app) { return [new Middleware\ResponseMiddleware($app), new Middleware\RouterMiddleware($app)]; }); $this['app.context'] = $this->share(function ($app) { return new ContextProxy(); }); $this['app.routes'] = $this->share(function ($app) { return new Route(); }); foreach ($values as $key => $value) { $this[$key] = $value; } }