[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 ! 😉
