symfony 2 : chapitre 2 - les vues en twig
DESCRIPTION
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 vuesTRANSCRIPT
1
Chapitre 2 : Les vues en Twig
3
Symfony utilise le moteur de template Twig 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.Lisibilité : {{mavar}} à la place de <?php echo $mavar; ?>
2.Ré-utisabilité : héritage entre Template. 3.Sécurité: variables protégées
4
Les vues : Twig vs PHP Exemple de code en PHP
Le même code en Twig
5
Syntaxe du langague
Syntaxe claire, concise et facile à Apprendre :
1. Variables : {{ mavar }} , {{objet.attribut}}, {{objet->attribut}}, {{tableau[‘element’]}}
2. Expressions : { % if condition %} … {%endif%}3. Commentaires : {# commentaires #}4. Liens avec path :
<a href = {{ path(‘homepage ‘) }}>>Accueil </a>5. Filtres : {{ varDate|date(“m\d\y”)}}6. Tests: {% if var is defined %} … {% endif %}7. Boucle :
{% for user in users %} <li>{{ user.username|e }}</li>
{% endfor %}
6
Documentation complète : http://twig.sensiolabs.org/documentation
L’héritage des templates
Permet de réutiliser certains blocs qui se répètent d’une page à l’autre
7
Templates fils {% extends‘UserBundleBundle::layout.ml.twig’ %}{% block content %}
{{ parent() }}Contenu spécifique
{% endblock%}
SIEDBAR
FOOTER
TEMPALTE PARENT : layout.html.twig
HEADER
{# définir un block #}{% block content %}
…{% endblock %}
Gestion des css / js / image
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
8
Passer des variables du contrôleur vers la vue 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
9