/**
* Register the middleware.
*
* @return void
*/
protected function registerMiddleware()
{
$this->app->singleton(Request::class, function ($app) {
$middleware = new Middleware\Request($app, $app[ExceptionHandler::class], $app[Router::class], $app[RequestValidator::class], $app['events']);
$middleware->setMiddlewares($this->config('middleware', false));
return $middleware;
});
$this->app->singleton(AuthMiddleware::class, function ($app) {
return new Middleware\Auth($app[Router::class], $app[Auth::class]);
});
$this->app->singleton(RateLimit::class, function ($app) {
return new Middleware\RateLimit($app[Router::class], $app[Handler::class]);
});
$this->app->singleton(PrepareController::class, function ($app) {
return new Middleware\PrepareController($app[Router::class]);
});
}