protected function buildView($exception, array $renderingOptions)
{
$statusCode = 500;
$referenceCode = null;
if ($exception instanceof FlowException) {
$statusCode = $exception->getStatusCode();
$referenceCode = $exception->getReferenceCode();
}
$statusMessage = Response::getStatusMessageByCode($statusCode);
$viewClassName = $renderingOptions['viewClassName'];
/** @var ViewInterface $view */
$view = $viewClassName::createWithOptions($renderingOptions['viewOptions']);
$view = $this->applyLegacyViewOptions($view, $renderingOptions);
$httpRequest = Request::createFromEnvironment();
$request = new ActionRequest($httpRequest);
$request->setControllerPackageKey('Neos.Flow');
$uriBuilder = new UriBuilder();
$uriBuilder->setRequest($request);
$view->setControllerContext(new ControllerContext($request, new Response(), new Arguments([]), $uriBuilder));
if (isset($renderingOptions['variables'])) {
$view->assignMultiple($renderingOptions['variables']);
}
$view->assignMultiple(['exception' => $exception, 'renderingOptions' => $renderingOptions, 'statusCode' => $statusCode, 'statusMessage' => $statusMessage, 'referenceCode' => $referenceCode]);
return $view;
}