Symfony2 - Les templates Twig

, par  admin

Twig est un moteur de Template qui sépare le code PHP du code HTML.
En règle générale on utilise 3 couches de templates twig :

La premier niveau concerne les éléments communs à l’ensemble du site.
Exemple :
Le header, les menus, le footer...
On place ce Template dans le dossier App/Resources/views/layout.html.twig

Le second niveau de Template est associé au Bundle. Le Template peut hériter du Template parent (celui du premier niveau) appelé par la commande ::layout.html.twig.
Les éléments qui lui sont associés concernent uniquement le Bundle. On le place dans le dossier tutoTestBundle/Resources/views/layout.html.twig

Enfin le dernier niveau concerne les éléments des pages du bundle. On le place dans le dossier TestBundle/Resources/views/nomDuController. Il hérite du Template du niveau 2 par cette commande {% extends "tutoTestBundle::layout.html.twig" %}

Dans l’exemple suivant, la page index.html affiche la variable webmaster en héritant de la structure html de son Template parent layout.html.twig situé dans tutoTestBundle::layout.html.twig

Fichier index.html.twig :

# TestBundle/Resources/views/Default/index.html.twig
{% extends "tutoTestBundle::layout.html.twig" %}
{% block title %}{{ parent() }} - Index{% endblock %}
{% block body %}

Test site symfony
Le webmaster est {{ webmaster }}
{% endblock %}

Template layout.html.twig :

<!DOCTYPE HTML>
<html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>{% block title %}Titre Template Test{% endblock %}</title>
 </head>
 <body bgcolor="silver">
   {% block body %}
   {% endblock %}
 </body>
</html>

Un peu de théorie... Tous les cours théoriques