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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !