src/EventListener/PaginationListener.php line 22
<?phpnamespace App\EventListener;use Symfony\Component\EventDispatcher\Attribute\AsEventListener;use Symfony\Component\HttpKernel\Event\ControllerEvent;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Component\Routing\RouterInterface;#[AsEventListener(KernelEvents::CONTROLLER)]class PaginationListener{private const LAST_ROUTE = 'last_route';public function __construct(private readonly RouterInterface $router){}public function __invoke(ControllerEvent $event): void{if (!isset(($request = $event->getRequest())->attributes->get('_route_params')['page'])) {return;}$session = $event->getRequest()->getSession();$baseRoute = $request->attributes->get('_route');if (str_contains($baseRoute, 'api_')) {$baseRoute = array_key_first($session->get(self::LAST_ROUTE) ?? []);}$session->set(self::LAST_ROUTE,[$baseRoute => $this->router->generate($baseRoute,$request->attributes->get('_route_params'))]);}}