Bonjour, je me suis mis depuis peu à Symfony2 et j'aurais une question par rapport aux Controller. Je vous explique le principe.
Je possède deux Controller A et B qui nécessitent que l'utilisateur soit connecté avant d'exécuter n'importe quelle méthodeAction.
Ce que j'aimerais, c'est que A et B héritent d'un controller X qui vérifie si l'user est connecté et si ce n'est pas le cas, qu'il bloque l'exécution et donc que les méthodes appelées (de A ou B) ne s'exécutent pas.
Pour le moment, voici un exemple de ce que j'ai.
Classe Mère : X
Exemple classe fille : A ou B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class ConnectController extends Controller { public function isConnected() { return ($this->get('session')->get('user_id') != null); } public function renderNoConnect() { return $this->render('template_pour_connexion'); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class AController extends ConnectController { public function indexAction() { if(!parent::isConnected()) return parent::renderNoConnect(); return $this->render('templateA'); } }
Ici, si l'user n'est pas connecté lors de l'appel de la méthode index de AController, la template pour la connexion va s'afficher. Ce code est pas mal redondant puisqu'il va falloir copier/coller la condition dans toute les méthodes du controller A ...
J'ai essayé quelques tricks avec _call(), mais sans succès.
Si certain on des idées, je suis preneur, merci d'avance
Partager