src/EventListener/DoctrineQueryLogListener.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\DBAL\Logging\NativeSQLLogger;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Psr\Log\LoggerInterface;
  6. use Psr\Log\LogLevel;
  7. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  8. class DoctrineQueryLogListener
  9. {
  10.     public const DEV_SERVER_NAME 'lon124';
  11.     /**
  12.      * @var LoggerInterface
  13.      */
  14.     private $logger;
  15.     /**
  16.      * @var ManagerRegistry
  17.      */
  18.     private $registry;
  19.     public function __construct(LoggerInterface $loggerManagerRegistry $registry)
  20.     {
  21.         $this->logger $logger;
  22.         $this->registry $registry;
  23.     }
  24.     public function onKernelController(ControllerEvent $event)
  25.     {
  26.         if (
  27.             php_uname('n') !== self::DEV_SERVER_NAME
  28.             || !$event->getRequest()->query->has('doctrine_debug')
  29.         ) {
  30.             return;
  31.         }
  32.         $this->registry
  33.             ->getConnection()
  34.             ->getConfiguration()
  35.             ->setSQLLogger(new NativeSQLLogger($this->loggerLogLevel::WARNING));
  36.     }
  37. }