2 declare(strict_types = 1);
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
20 use Psr\Http\Server\MiddlewareInterface;
21 use Psr\Http\Server\RequestHandlerInterface;
46 array $middlewares = []
50 foreach ($middlewares as $middleware) {
51 if (is_string($middleware)) {
52 $this->
lazy($middleware);
54 $this->
add($middleware);
65 public function handle(ServerRequestInterface $request): ResponseInterface
67 return $this->tip->handle($request);
89 public function add(MiddlewareInterface $middleware)
98 $this->middleware = $middleware;
102 public function handle(ServerRequestInterface $request): ResponseInterface
104 return $this->middleware->process($request, $this->next);
118 public function lazy(
string $middleware)
127 $this->middleware = $middleware;
131 public function handle(ServerRequestInterface $request): ResponseInterface
133 $middleware = GeneralUtility::makeInstance($this->middleware);
135 if (!$middleware instanceof MiddlewareInterface) {
136 throw new \InvalidArgumentException(get_class($middleware) .
' does not implement ' . MiddlewareInterface::class, 1516821342);
138 return $middleware->process($request, $this->next);