Altération de ma variable de session
Bonjour,
J'ai un souci surprenant, sur lequel je viens de passer plusieurs heures, sans succès.
Mon objectif est de stocker en session la dernière route appelée et ses paramètres. Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class CMTRequestListener
{
protected $session;
public function __construct(Session $session)
{
$this->session = $session;
}
public function onRequestEvent(GetResponseEvent $event)
{
if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
return;
}
$request = $event->getRequest();
$attributes = $request->attributes;
// Stores current Route
$routeName = $attributes->get('_route');
var_dump($this->session->get('route_info'));
if ($routeName != "cmt_cluster_change" && $routeName != "_wdt")
{
$route = array(
'name' => $routeName,
'params' => $attributes->get('_route_params')
);
$this->session->set('route_info', $route);
}
}
} |
La variable de session est créée correctement, mais le problème est que lorsque je change de page et que l'événement est de nouveau invoqué, la variable de session route_info est systématiquement modifiée par je ne sais quel processus, et ne vaut donc pas la valeur attendue au premier var_dump. J'ai eu beau essayer de tracer l'origine de ce changement, mais je n'arrive pas trouver où cette valeur est modifiée. C'est très contrariant.
Alors peut-être que je me suis trompé dans l'utilisation des sessions ? Merci d'avance pour votre aide !