src/Core/Service/RouteHistory.php line 46
<?phpnamespace App\Core\Service;use App\Core\Model\RouteData;use App\Core\Model\RouteDataInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\RequestStack;class RouteHistory implements RouteHistoryInterface{private RequestStack $requestStack;public function __construct(RequestStack $requestStack){$this->requestStack = $requestStack;}/*** Process given request.*/public function processRequest(Request $request): void{if (true === $request->isXmlHttpRequest()) {return;}$session = $request->getSession();$routeName = $request->get('_route');if ('_' === $routeName[0]) {return;}$routeParams = $request->get('_route_params');$routeData = ['name' => $routeName, 'params' => $routeParams];// Do not save same matched route twice$thisRoute = $session->get('_route_history.this_route', []);if ($thisRoute == $routeData) {return;}$session->set('_route_history.last_route', $thisRoute);$session->set('_route_history.this_route', $routeData);}/*** Returns route data for last route.** @return RouteDataInterface*/public function getLastRoute(): ?RouteDataInterface{$routeData = $this->requestStack->getSession()->get('_route_history.last_route');if (null === $routeData) {return $routeData;}return new RouteData($routeData);}/*** Returns route data for current route.*/public function getThisRoute(): RouteDataInterface{return new RouteData($this->requestStack->getSession()->get('_route_history.this_route'));}}