kernel->executionRunner()->execute( ExecutionDescriptor::http(), function () use ($request, $send): Response { $response = $this->pipeline()->handle($request); if ($send) { $response->send(); } return $response; }, function (\Throwable $error) use ($send): Response { $response = $this->errorResponse($error); if ($send) { $response->send(); } return $response; }, ); } private function pipeline(): MiddlewarePipeline { $pipeline = new MiddlewarePipeline($this->kernel->container()); $pipeline->pipe(TenantMiddleware::class); $pipeline->pipe(FirewallMiddleware::class); $pipeline->pipe(AuthenticationMiddleware::class); $pipeline->pipe(RouterMiddleware::class); return $pipeline; } private function errorResponse(\Throwable $error): Response { error_log(sprintf( 'Application error: %s in %s:%d', $error->getMessage(), $error->getFile(), $error->getLine(), )); $content = $this->debug ? '
' . htmlspecialchars((string) $error) . '
' : 'An error occurred. Please try again later.'; return new Response($content, Response::HTTP_INTERNAL_SERVER_ERROR, [ 'Content-Type' => 'text/html; charset=UTF-8', ]); } }