<?php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class RequestSubscriber implements EventSubscriberInterface
{
use TargetPathTrait;
public function onKernelRequest(RequestEvent $event): void
{
$request = $event->getRequest();
//on va ici faire en sorte de ne pas garder en mémoire certaines routes
if (
!$event->isMainRequest()
|| $request->isXmlHttpRequest()
|| 'app_login' === $request->attributes->get('_route')
|| 'app_logout' === $request->attributes->get('_route')
|| 'registration' === $request->attributes->get('_route')
|| 'app_forgot_password_request' === $request->attributes->get('_route')
|| 'app_check_email' === $request->attributes->get('_route')
|| 'app_reset_password' === $request->attributes->get('_route')
) {
return;
} else {
$this->saveTargetPath($request->getSession(), 'main', $request->getUri());
}
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => ['onKernelRequest']
];
}
}