function HttpKernel::handle
Overrides HttpKernelInterface::handle
File
-
vendor/
symfony/ http-kernel/ HttpKernel.php, line 69
Class
- HttpKernel
- HttpKernel notifies events to convert a Request object to a Response one.
Namespace
Symfony\Component\HttpKernelCode
public function handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true) : Response {
$request->headers
->set('X-Php-Ob-Level', (string) ob_get_level());
$this->requestStack
->push($request);
$response = null;
try {
return $response = $this->handleRaw($request, $type);
} catch (\Throwable $e) {
if ($e instanceof \Error && !$this->handleAllThrowables) {
throw $e;
}
if ($e instanceof RequestExceptionInterface) {
$e = new BadRequestHttpException($e->getMessage(), $e);
}
if (false === $catch) {
$this->finishRequest($request, $type);
throw $e;
}
return $response = $this->handleThrowable($e, $request, $type);
} finally {
$this->requestStack
->pop();
if ($response instanceof StreamedResponse && ($callback = $response->getCallback())) {
$requestStack = $this->requestStack;
$response->setCallback(static function () use ($request, $callback, $requestStack) {
$requestStack->push($request);
try {
$callback();
} finally {
$requestStack->pop();
}
});
}
}
}