view = $view; $this->translator = $translator; } /** * Invoke the ErrorHandler class. * * @param \Psr\Http\Message\ServerRequestInterface $request * @param \Throwable $exception * @param bool $displayErrorDetails * @param bool $logErrors * @param bool $logErrorDetails * * @return \Psr\Http\Message\ResponseInterface */ public function __invoke( ServerRequestInterface $request, Throwable $exception, bool $displayErrorDetails, bool $logErrors, bool $logErrorDetails ): ResponseInterface { $response = (new Response)->withStatus(500); if (in_array('application/json', explode(',', $request->getHeaderLine('Accept')))) { $response->getBody()->write(json_encode([ 'error' => ['message' => $this->translator->trans('error.unexpected')] ])); return $response->withHeader('Content-Type', 'application/json'); } return $this->view->render($response, 'error.twig', [ 'message' => $this->translator->trans('error.unexpected'), 'subtext' => $this->translator->trans('enable_debugging'), ]); } }