logger = new NullLogger(); $this->translator = new PassthroughTranslator(); } /** * @param LoggerInterface $logger * @return null */ public function setLogger(LoggerInterface $logger) { $this->logger = $logger; } /** * @param TranslatorInterface $translator */ public function setTranslator(TranslatorInterface $translator) { $this->translator = $translator; } public function createResponseBasedOnRequest(Request $request, $exception) { return parent::createResponse($exception); } public function getContent(FlattenException $exception) { if ($exception->getStatusCode() == '500') { $this->logger->error($exception->getMessage(), [ 'code' => $exception->getCode(), 'trace' => $exception->getTrace() ]); } switch (true) { case 404 === $exception->getStatusCode(): $title = $this->translator->trans('Sorry, the page you are looking for could not be found.'); break; case 403 === $exception->getStatusCode(): $title = $this->translator->trans('Sorry, you do have access to the page you are looking for.'); break; case 500 === $exception->getStatusCode(): $title = $this->translator->trans('Whoops, looks like something went wrong.'); break; case 503 === $exception->getStatusCode(): $title = $this->translator->trans('Sorry, site is currently undergoing maintenance, come back soon.'); break; case isset(Response::$statusTexts[$exception->getStatusCode()]): $title = $exception->getStatusCode() . ' : ' . Response::$statusTexts[$exception->getStatusCode()]; break; default: $title = $this->translator->trans('Whoops, looks like something went wrong.'); } $content = parent::getContent($exception); $start = strpos($content, ''); $content = '
' . '

' . $title . '

' . substr($content, $start + 5); return $content; } public function getStylesheet(FlattenException $exception) { $exception->getStatusCode(); switch ($exception->getStatusCode()) { case 403: case 404: case 500: case 503: $errorImg = sprintf('/assets/common/images/error-pages/%s.png', $exception->getStatusCode()); break; default: $errorImg = '/assets/common/images/error-pages/error.png'; break; } return <<