framework-web:symfony:templates

Ceci est une ancienne révision du document !


Templates

Le moteur de templates est responsable de l'affichage des vues. Il est conseillé d'utiliser Twig, plutôt que PHP, comme moteur de templates.

composer require twig

Twig utilise 3 types de tags :

{{ ... }} “affiche quelque chose” équivalent du echo de php : affiche une variable ou le résultat d'une expression.
{% ... %} “Fait quelque chose”: tag agissant sur la logique du template ; il est utilisé par exemple pour faire des itérations, ou des contrôles.
{# ... #} “Commente quelque chose”: équivalent du PHP /* comment */. Il est utilisé pour ajouter des commentaires sur 1 ou plusieurs lignes. Le commentaire ne sera pas présent dans la page réponse.

Twig contient aussi des filtres (filters), qui permettent de modifier le contenu affiché.

L'appel suivant affiche la variable title en majuscules :

{{ title|upper }}

La liste complète des tags est fournie dans la documentation twig

Afficher une variable
Nom : {{nom}}
Afficher un élément de tableau
Utilisateur en position 0 : {{users[0]}}
Accès aux membres
(utilisation implicite du getter getNom())
Nom d'utilisateur : {{user.nom}}
Application d'un filtre
Pseudo en majuscules : {{ pseudo|upper }}
Utilisation d'une combinaison de filtres
Message : {{ news.texte|striptags|title }}
Affichage d'une date de type DateTime
Date : {{ date|date('d/m/Y') }}
Concaténation
Identité : {{ nom ~ ' ' ~ prenom }}
upper Met toutes les lettres en majuscules.
{{ var|upper }}
striptags Supprime toutes les balises XML.
{{var|striptags }}
date Formate la date selon le format donné en argument. La variable en entrée doit être une instance de DateTime.
{{ date|date('d/m/Y') }}
format Insère des variables dans un texte, équivalent à printf.
{{ "Il y a %s pommes et %s poires"|format(153, nb_poires) }}
length Retourne le nombre d'éléments du tableau, ou le nombre de caractères d'une chaîne.
Longueur de la variable : {{ texte|length }}
raw Désactive l'auto-escape sur l'affichage de la variable.
Elément HTML : {{ element|raw }}

if

voir Doc twig if

Permet de poser une condition, comme en php

{% if online == false %}
    <p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}

for

voir Doc twig for

Equivalent du foreach php :

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

  • framework-web/symfony/templates.1517253460.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)