Bonjour,
je développe actuellement un site web sous Symfony 2.3.1. Tout fonctionne correctement, mais je me pose une question de logique. En effet, ais-je bien compris le fonctionnement de Symfony2 ?
Voici ma façon de procéder (avec un exemple simple):
Dans le contrôleur de mon bundle "User" j'ai ceci :
Donc deux vues sont générées :
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 class UserController extends Controller { public function indexAction() { return $this->render('GamUserBundle:User:index.html.twig'); } public function informationsAction() { $user = $this->container->get('security.context')->getToken()->getUser(); $username = $user->getUsername(); $user_infos = $this->getDoctrine() ->getManager() ->getRepository('GamUserBundle:User') ->findOneByUsername($username) ->getInformations(); return $this->render('GamUserBundle:User:informations.html.twig', array('user_infos' => $user_infos)); } }
index.html.twig
et informations.html.twig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 {% extends "GamUserBundle::layout.html.twig" %} {% block fos_user_content %} <h3>Profil</h3> {{ render(controller("FOSUserBundle:Profile:show")) }} <h3>Informations</h3> {{ render(controller("GamUserBundle:User:informations")) }} {% endblock %}
Avec ce système tout fonctionne et j'ai surtout l'action "informations" qui est très facilement utilisable par d'autres bundles grâce à {{ render(controller("GamUserBundle:User:informations")) }}.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <p>Prénom = {{ user_infos.prenom }}</p>
Ma question est donc : est-ce une méthode viable dans la mesure ou j'ai besoin de pouvoir réutiliser le rendu de l'action "informations" à plusieurs endroits sur le site et dans d'autres bundles ?
Merci d'avance !
Partager