src/Controller/QExceptionController.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Util\AppLogger;
  4. use Symfony\Component\ErrorHandler\ErrorRenderer\ErrorRendererInterface;
  5. use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
  6. use Symfony\Component\HttpKernel\Controller\ErrorController;
  7. use Symfony\Component\HttpKernel\HttpKernelInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
  10. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  11. use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
  12. use Symfony\Component\HttpKernel\Profiler\Profiler;
  13. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Throwable;
  16. use Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer;
  17. use Twig\Environment;
  18. class QExceptionController extends ErrorController
  19. {    
  20.     private $logger;
  21.     private $renderer;
  22.     
  23.     public function __construct(AppLogger $loggerHttpKernelInterface $kern$debugEnvironment $twig//, AppLogger $logger)
  24.     {
  25.         $this->logger $logger;
  26.         $renderer = new HtmlErrorRenderer($debug);
  27.         $this->renderer = new TwigErrorRenderer($twig$renderer$debug);
  28.         parent::__construct($kern$this$this->renderer);
  29.     }
  30.     
  31.     public function showAction(Request $requestThrowable $exceptionDebugLoggerInterface $logger null)
  32.     {   
  33.         
  34.         if($exception instanceof NotFoundHttpException) {
  35.             if($exception->getStatusCode() == 403) {
  36.                 $this->logger->log('Access denied exception (403)'null, ['message' => $exception->getMessage(), 'url' => $request->getUri()], 'critical');
  37.                 
  38.             }
  39.             elseif($exception->getStatusCode() == 404) {
  40.                 $this->logger->log('Page not found exception (404)'null, ['message' => $exception->getMessage(), 'url' => $request->getUri()], 'critical');
  41.             }
  42.             else {
  43.                 $this->logger->log('Not handled exception'null, ['message' => $exception->getMessage(), 'url' => $request->getUri(), 'status code' => $exception->getStatusCode()], 'critical');
  44.             }
  45.         }
  46.         else {
  47.             $this->logger->log('Not handled exception'null, ['message' => $exception->getMessage(), 'url' => $request->getUri()], 'critical');
  48.         }
  49.         
  50.         $flatten $this->renderer->render($exception);
  51.         return new Response($flatten->getAsString(), $flatten->getStatusCode(), $flatten->getHeaders());
  52.     }
  53.     
  54. }