Deuxième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du moteur de template Twig
- Syntaxe et utilisation du moteur de template Twig dans les vues des contrôleurs
- Passer des variables depuis les contrôleurs vers les vues
4. 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
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
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
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 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
10. 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