middlewares[] = di($middleware); } } /** * @param ServerRequestInterface $request * @return ResponseInterface * @throws ReflectionException */ public function execute(ServerRequestInterface $request): ResponseInterface { if (!isset($this->middlewares[$this->offset])) { return $this->handler->handle($request); } /** @var MiddlewareInterface $middleware */ $middleware = $this->middlewares[$this->offset]; $this->offset += 1; return $middleware->process($request, $this); } }