/** * Invocation * * Dispatch the middlewares of the route requested * * @param ServerRequestInterface $request Request * @param ResponseInterface $response Response * @param TornadoHttp $next Next Middleware - TornadoHttp container * @return ResponseInterface */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, TornadoHttp $next) { $index = $next->getMiddlewareIndex(); $routeMiddlewares = $this->routes[$request->getAttribute(Router::REGISTER_KEY)]['middlewares']; foreach ($routeMiddlewares as $middleware) { $next->add($middleware, null, null, null, $index++); } return $next($request, $response); }