<?php
namespace App\Infrastructure\EventSubscriber;
use Monolog\ErrorHandler;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Psr\Log\LoggerInterface;
class PreControllerErrorHandlerSubscriber implements EventSubscriberInterface
{
private LoggerInterface $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function onKernelRequest(RequestEvent $event): void
{
ErrorHandler::register($this->logger);
}
public static function getSubscribedEvents(): array
{
return [
// High priority so it runs before controllers
KernelEvents::REQUEST => ['onKernelRequest', 1000],
];
}
}