vendor/kunstmaan/admin-bundle/EventListener/ConsoleExceptionListener.php line 32

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\AdminBundle\EventListener;
  3. use Psr\Log\LoggerInterface;
  4. use Symfony\Component\Console\Event\ConsoleErrorEvent;
  5. use Symfony\Component\Console\Event\ConsoleExceptionEvent;
  6. /**
  7.  * Class ConsoleExceptionListener.
  8.  *
  9.  * @deprecated in KunstmaanAdminBundle 5.1 and will be removed in KunstmaanNodeBundle 6.0.
  10.  */
  11. class ConsoleExceptionListener
  12. {
  13.     /** @var LoggerInterface */
  14.     private $logger;
  15.     /**
  16.      * ConsoleExceptionListener constructor.
  17.      *
  18.      * @param LoggerInterface $logger
  19.      */
  20.     public function __construct(LoggerInterface $logger)
  21.     {
  22.         $this->logger $logger;
  23.     }
  24.     /**
  25.      * @param ConsoleExceptionEvent $event
  26.      */
  27.     public function onConsoleException(ConsoleExceptionEvent $event)
  28.     {
  29.         // if the newer error event exists, don't bother with the old exception, our subscriber will handle this
  30.         if (class_exists(ConsoleErrorEvent::class)) {
  31.             return;
  32.         }
  33.         $command $event->getCommand();
  34.         $exception $event->getException();
  35.         $this->logCommandError($command$exception);
  36.     }
  37.     /**
  38.      * @param $command
  39.      * @param $error
  40.      */
  41.     private function logCommandError($command$error)
  42.     {
  43.         $message sprintf(
  44.             '%s: %s (uncaught error) at %s line %s while running console command `%s`',
  45.             \get_class($error),
  46.             $error->getMessage(),
  47.             $error->getFile(),
  48.             $error->getLine(),
  49.             $command->getName()
  50.         );
  51.         $this->logger->critical($message, ['error' => $error]);
  52.     }
  53. }