| Première version | |
|---|---|
| Dernière version | 3.22.1 () |
| Dépôt | github.com/twigphp/Twig |
| Écrit en | PHP |
| Système d'exploitation | Multiplateforme (d) |
| Type |
Système de gabarit Bibliothèque PHP (d) |
| Licence | Licence BSD |
| Site web | twig.symfony.com |
Twig est un moteur de templates pour le langage de programmation PHP, utilisé par défaut par le framework Symfony.
gettext)Supportés par les environnements de développement intégrés tels que :
Et les éditeurs de texte :
{{ parent() }}).Pour créer un tableau itératif :
{% set myArray = [1, 2] %}
Un tableau associatif :
{% set myArray = {'key': 'value'} %}
Du moins au plus prioritaire :
| Opérateur | Rôle |
|---|---|
| b-and | Et booléen |
| b-xor | Ou exclusif |
| b-or | Ou booléen |
| or | Ou |
| and | Et |
| == | Est-il égal |
| != | Est-il différent |
| < | Inférieur |
| > | Supérieur |
| >= | Supérieur ou égal |
| <= | Inférieur ou égal |
| in | Dans |
| matches | Correspond |
| starts with | Commence par |
| ends with | Se termine par |
| .. | Séquence (ex : 1..5) |
| + | Plus |
| - | Moins |
| ~ | Concaténation |
| * | Multiplication |
| / | Division |
| // | Division arrondie à l'inférieur |
| % | Modulo |
| is | Test (ex : is defined ou is not empty) |
| ** | Puissance |
| | | Filtre |
| [] | Entrée de tableau |
| . | Attribut ou méthode d'un objet (ex : country.name) |
Les filtres fournissent des traitements sur une expression, si on les place après elle séparés par des pipes. Par exemple :
capitalize : met une majuscule à la première lettre d'une chaine de caractères.upper : met la chaine en lettres capitales.first : affiche la première ligne d'un tableau.length : renvoie la taille de la variable.loop contient les informations de la boucle dans laquelle elle se trouve. Par exemple loop.index donne le nombre d'itérations déjà survenue.{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{{ app.request.server.get('SERVER_NAME') }}Si le fichier "base.html" contient l'en-tête et le pied de page HTML communs à toutes les pages, ces dernières peuvent en hériter avec le mot extends.
{% extends "base.html.twig" %}
{% block navigation %}
<ul id="navigation">
{% for item in navigation %}
<li>
<a href="{{ item.href }}">
{% if item.level == 2 %}
{{ item.name|upper }}
{% endif %}
</a>
</li>
{% endfor %}
</ul>
{% endblock navigation %}