src/PaaBundle/Component/EventListener/ExceptionListener.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\PaaBundle\Component\EventListener;
  3. // LG 20240516 déac use Symfony\Component\HttpFoundation\Response;
  4. //use Symfony\Component\HttpKernel\Event\ExceptionEvent; [à utiliser  à la place GetResponseForExceptionEvent; pour les version supérieur de Symfony (exemple Symfony 4.4 et Symfony 5.1)]
  5. use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
  6. // LG 20240516 déac use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
  7. // LG 20240516 déac use App\PaaBundle\Component\MyLogger;
  8. use App\PaaBundle\Component\Logs;
  9. // LG 20240516 déac use Monolog\Logger;
  10. // LG 20240516 déac use Monolog\Handler\StreamHandler;
  11. // LG 20240516 déac use Monolog\Handler\FirePHPHandler;
  12. // LG 20240516 déac use Monolog\Formatter\LineFormatter;
  13. // LG 20240516 déac use Symfony\Component\HttpKernel\KernelInterface;
  14. class ExceptionListener {
  15.     /**
  16.      * @var string
  17.      */
  18.     private $project_dir;
  19.     public function __construct($project_dir) {
  20.         $this->project_dir $project_dir;
  21.     }
  22.     public function onKernelException(GetResponseForExceptionEvent $event) {
  23. // remplacer GetRepsonseForExceptionEvent par ExceptionEvent pour les version supérieur de Symfony (exemple Symfony 4.4 et Symfony 5.1)
  24.         if ($_ENV['APP_ENV'] === 'prod') {
  25. //            You get the exception object from the received event
  26. //            getThrowable(); à utiliser pour les version supérieur de Symfony (exemple Symfony 4.4 et Symfony 5.1)
  27. //            $exception = $event->getThrowable();
  28.             $exception $event->getException();
  29.             $message sprintf('Error: %s with code: %s'$exception->getMessage(), $exception->getCode());
  30. //            Customize your response object to display the exception details
  31.             Logs::setProjectDir($this->project_dir);
  32.             $stackTrace $exception->getTraceAsString();
  33.             $stackTrace str_replace("#"chr(9) . "#"$stackTrace);
  34.             Logs::setStackTrace($stackTrace);
  35.             Logs::critical($message);
  36.         }
  37.     }
  38. //    protected function buildStackTrace(array $paTrace) {
  39. //        $stackTrace = "test" ;
  40. //        return $stackTrace;
  41. //    }
  42. }