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 :

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));
    }
}
Donc deux vues sont générées :

index.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 %}
et informations.html.twig

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<p>Prénom = {{ user_infos.prenom }}</p>
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")) }}.

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 !