<?php
namespace App\EventListener;
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class ExceptionListener extends AbstractController
{
private RouterInterface $router;
public function __construct(RouterInterface $router)
{
$this->router = $router;
}
public function onKernelException(ExceptionEvent $event)
{
$exception = $event->getThrowable();
// Si es un error 404, redirigir a la página personalizada
if ($exception instanceof NotFoundHttpException) {
$response = $this->redirectToRoute('error_404');
$event->setResponse($response);
} else {
// Para cualquier otro error, redirigir a la página de error genérica
$response = $this->redirectToRoute('error_general');
$event->setResponse($response);
}
}
}