*/ private array $middleware = []; public function __construct(private readonly RequestHandlerInterface $fallbackHandler) { } public function add(MiddlewareInterface $middleware): void { $this->middleware[] = $middleware; } public function handle(ServerRequestInterface $request): ResponseInterface { if ($this->middleware === []) { return $this->fallbackHandler->handle($request); } $middleware = array_shift($this->middleware); return $middleware->process($request, $this); } }