<?php
namespace App\EventListener;
use App\DBAL\Logging\NativeSQLLogger;
use Doctrine\Persistence\ManagerRegistry;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
class DoctrineQueryLogListener
{
public const DEV_SERVER_NAME = 'lon124';
/**
* @var LoggerInterface
*/
private $logger;
/**
* @var ManagerRegistry
*/
private $registry;
public function __construct(LoggerInterface $logger, ManagerRegistry $registry)
{
$this->logger = $logger;
$this->registry = $registry;
}
public function onKernelController(ControllerEvent $event)
{
if (
php_uname('n') !== self::DEV_SERVER_NAME
|| !$event->getRequest()->query->has('doctrine_debug')
) {
return;
}
$this->registry
->getConnection()
->getConfiguration()
->setSQLLogger(new NativeSQLLogger($this->logger, LogLevel::WARNING));
}
}