/** * Converts an Exception to a Response. * * @param Request $request The request * @param FlattenException $exception A FlattenException instance * @param DebugLoggerInterface $logger A DebugLoggerInterface instance * * @return Response * * @throws \InvalidArgumentException When the exception template does not exist */ public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null) { $currentContent = $this->getAndCleanOutputBuffering($request->headers->get('X-Php-Ob-Level', -1)); $code = $exception->getStatusCode(); if ($exception->GetClass() == 'UCI\\Boson\\ExcepcionesBundle\\Exception\\LocalException') { $arrayRutaFile = explode(DIRECTORY_SEPARATOR, $exception->getFile()); $strExtraer = ""; for ($i = count($arrayRutaFile) - 1; $i >= 0; $i--) { if (preg_match('/[a-zA-Z0-9]Bundle$/', $arrayRutaFile[$i]) == 1) { $direccionBundle = explode($strExtraer, $exception->getFile())[0]; $direccionFileExcepciones = $direccionBundle . DIRECTORY_SEPARATOR . "Resources" . DIRECTORY_SEPARATOR . "config"; if (is_dir($direccionFileExcepciones)) { break; } } $strExtraer = DIRECTORY_SEPARATOR . $arrayRutaFile[$i] . $strExtraer; } $showInProd = false; $values = $this->getArrayExcepcionesInFile($direccionFileExcepciones); foreach ($values as $key => $excp) { if ($key == $exception->getCode() && array_key_exists('show_in_prod', $excp)) { $showInProd = $excp['show_in_prod']; } } return new Response($this->twig->render((string) $this->findTemplate($request, $request->getRequestFormat(), $code, $this->debug), array('status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'show_in_prod' => $showInProd, 'logger' => $logger, 'currentContent' => $currentContent))); } return new Response($this->twig->render((string) $this->findTemplate($request, $request->getRequestFormat(), $code, $this->debug), array('status_code' => $code, 'status_text' => isset(Response::$statusTexts[$code]) ? Response::$statusTexts[$code] : '', 'exception' => $exception, 'logger' => $logger, 'currentContent' => $currentContent))); }