1
Symfony 2

ABDELKADER RHOUATI
ABDELKADER.RHOUATI@GMAIL.COM
COURS SF 2 - 2013

2
3

Chapitre 2 :
Les vues en Twig
Symfony utilise le moteur
de template Twig


4

C’est quoi un moteur de template ?
Un script qui permet d'utiliser des templates, c'est-à-dire des
fichiers qui ont pour but d’afficher le contenu de votre page
HTML de façon dynamique mais sans PHP, en utilisant leur
propre langage. Chaque moteur a son propre langage.




Twig est développé par l’équipe de SensioLabs.
Le premier objectif est de séparer la couche de présentation des
applications web.



Twig offre une meilleure:
1.
2.
3.

Lisibilité : {{mavar}} à la place de <?php echo $mavar; ?> 
Ré-utisabilité : héritage entre Template.
Sécurité: variables protégées
Les vues : Twig vs PHP


Exemple de code en PHP



Le même code en Twig

5
Syntaxe du langague
 Syntaxe

6

claire, concise et facile à Apprendre :

2.
3.
4.

Variables : {{ mavar }} , {{objet.attribut}}, {{objet->attribut}},
{{tableau[‘element’]}}
Expressions : { % if condition %} … {%endif%}
Commentaires : {# commentaires #}
Liens avec path :

1.
2.
3.

Filtres : {{ varDate|date(“mdy”)}}
Tests: {% if var is defined %} … {% endif %}
Boucle :

1.

<a href = {{ path(‘homepage ‘) }}>Accueil </a>

{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}

Documentation complète : http://twig.sensiolabs.org/documentation
L’héritage des templates


7

 Permet de  réutiliser certains blocs qui se répètent d’une page à
l’autre
TEMPALTE PARENT : layout.html.twig
HEADER

Templates fils

SIEDBAR

{% extends
{# définir un block #}
‘UserBundleBundle::layout.ml.twig’
%} {% block content %}
{% block…
content %}
{% endblock %}}}
{{ parent()
Contenu spécifique
{% endblock%}
FOOTER
Gestion des css / js / image

8

Pour chaque Bundle créer un Asset : répertoire qui
regroupe l’ensemble des fichier CSS/JS/Image d’un
bundle, utiliser la commande depuis la racine du Symfony :
php app/console assets:install web

Utiliser la fonction asset() pour appeler les fichiers
depuis les vues twig
Passer des variables du
contrôleur vers la vue


9

Au niveau du contrôleur retourner un tableau associatif du
genre :
Array( ‘nom_variable_twig’ => $variable, …)
On peut passer des variable simples, des tableau et même
des objets
Passer des variables du
contrôleur vers la vue


9

Au niveau du contrôleur retourner un tableau associatif du
genre :
Array( ‘nom_variable_twig’ => $variable, …)
On peut passer des variable simples, des tableau et même
des objets

Symfony 2 : chapitre 2 - Les vues en Twig

  • 1.
  • 2.
  • 3.
    3 Chapitre 2 : Lesvues en Twig
  • 4.
    Symfony utilise lemoteur de template Twig  4 C’est quoi un moteur de template ? Un script qui permet d'utiliser des templates, c'est-à-dire des fichiers qui ont pour but d’afficher le contenu de votre page HTML de façon dynamique mais sans PHP, en utilisant leur propre langage. Chaque moteur a son propre langage.   Twig est développé par l’équipe de SensioLabs. Le premier objectif est de séparer la couche de présentation des applications web.  Twig offre une meilleure: 1. 2. 3. Lisibilité : {{mavar}} à la place de <?php echo $mavar; ?>  Ré-utisabilité : héritage entre Template. Sécurité: variables protégées
  • 5.
    Les vues :Twig vs PHP  Exemple de code en PHP  Le même code en Twig 5
  • 6.
    Syntaxe du langague Syntaxe 6 claire, concise et facile à Apprendre : 2. 3. 4. Variables : {{ mavar }} , {{objet.attribut}}, {{objet->attribut}}, {{tableau[‘element’]}} Expressions : { % if condition %} … {%endif%} Commentaires : {# commentaires #} Liens avec path : 1. 2. 3. Filtres : {{ varDate|date(“mdy”)}} Tests: {% if var is defined %} … {% endif %} Boucle : 1. <a href = {{ path(‘homepage ‘) }}>Accueil </a> {% for user in users %} <li>{{ user.username|e }}</li> {% endfor %} Documentation complète : http://twig.sensiolabs.org/documentation
  • 7.
    L’héritage des templates  7  Permetde  réutiliser certains blocs qui se répètent d’une page à l’autre TEMPALTE PARENT : layout.html.twig HEADER Templates fils SIEDBAR {% extends {# définir un block #} ‘UserBundleBundle::layout.ml.twig’ %} {% block content %} {% block… content %} {% endblock %}}} {{ parent() Contenu spécifique {% endblock%} FOOTER
  • 8.
    Gestion des css/ js / image 8 Pour chaque Bundle créer un Asset : répertoire qui regroupe l’ensemble des fichier CSS/JS/Image d’un bundle, utiliser la commande depuis la racine du Symfony : php app/console assets:install web Utiliser la fonction asset() pour appeler les fichiers depuis les vues twig
  • 9.
    Passer des variablesdu contrôleur vers la vue  9 Au niveau du contrôleur retourner un tableau associatif du genre : Array( ‘nom_variable_twig’ => $variable, …) On peut passer des variable simples, des tableau et même des objets
  • 10.
    Passer des variablesdu contrôleur vers la vue  9 Au niveau du contrôleur retourner un tableau associatif du genre : Array( ‘nom_variable_twig’ => $variable, …) On peut passer des variable simples, des tableau et même des objets