[Symfony] Mise en place d'un subscriber d'événement pour une exception de type 404 NotFoundHttpException
Publié le 30/03/2023 • Actualisé le 30/03/2023
Dans ce bout de code, nous voyons comment mettre en place un subscriber d'événement pour une exception de type 404 NotFoundHttpException. Ici, on teste le chemin ayant provoqué l'exception (ce chemin ne correspond donc à aucune route connue de l'application). On peut aussi consigner ou notifier, voir l'exemple de la documentation ci-dessous. Vous pouvez tester ce snippet ici.
<?php
declare(strict_types=1);
namespace App\Subscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
final class NotFoundExceptionSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
ExceptionEvent::class => 'onKernelException',
];
}
public function onKernelException(ExceptionEvent $event): void
{
$exception = $event->getThrowable();
if ($exception instanceof NotFoundHttpException) {
$path = $event->getRequest()->getPathInfo();
if ($path === '/404') {
$event->setResponse(new Response('404 found!'));
$event->stopPropagation();
}
}
}
}
Plus sur Stackoverflow Lire la doc Snippet aléatoire
A vous de jouer !
Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )
- Me remonter des erreurs ou typos.
- Me remonter des choses qui pourraient être améliorées.
- Aimez et repostez !
- Suivez moi sur Bluesky 🦋
- Inscrivez-vous au flux RSS.
- Cliquez sur les boutons Plus sur Stackoverflow pour me faire gagner des badges "annonceur" 🏅.
Merci et à très bientôt sur Strangebuzz ! 😉