Bonsoir,

En voulant créer un router interne pour économiser de la place dans routing.yml, j'ai rencontré un problème assez étrange.

Le contexte:

Dans le routing j'ai une déclaration de la route vers l'affichage des articles:
listArticles:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
  url: /articles/:showBy/:somethinkId/:somethinkName/:page/:sortBy/:sortType
  param: {module: Articles, action: ShowDefault}  
  class: mRouteClass
  requirements:
    showBy: (ville|type)
    somethinkId: \d+
    somethinkName: \S+
    page: \d+  
    sortBy: \S+
    sortType: (desc|asc)
L'url du type http://domaine.com/articles/ville/2/...se/1/title/asc est traité par mon router mRouteClass. Dedans la méthode matchersUrl() traite cette requête.

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
public function matchesUrl($url, $context = array()) 
  {  
    $parameters = parent::matchesUrl($url, $context); 
	if(count($parameters) > 1) 
	{
	  $action = $parameters['action'];  
      foreach($parameters as $p => $parameter) 
	  { 
	    sfContext::getInstance()->getRequest()->setParameter($p, $parameter); 
	  }  
	  sfContext::getInstance()->getRequest()->setParameter('setRender', 1);  
      sfContext::getInstance()->getController()->forward($this->routesMap[$action][$parameters['showBy']]['module'], $this->routesMap[$action][$parameters['showBy']]['action']); 
    }  
	return $parameters;	
  }
Vers la fin elle "forwarde" la requête vers l'action définie (dans notre cas ce sera l'action News et la méthode ListNews). Elle est bien appelée. Le router marche correctement.

Le problème commence quand je tenter de récupérer les données des utilisateurs connectés. Quand j'initialise la session, je reçois un message d'erreur:
Argument 2 passed to sfBasicSecurityUser::initialize() must be an instance of sfStorage
Quand je tente à récupérer l'id de l'utilisateur connecté, là aussi je reçois un message d'erreur:
Call to a member function getAttribute() on a non-object
Est-ce que vous auriez une idée de l'origine du problème avec la session qui ne passe pas avec le forward ?

Cordialement.