Twig

Twig
Informations
Première version Voir et modifier les données sur Wikidata
Dernière version 3.22.1 ()Voir et modifier les données sur Wikidata
Dépôt github.com/twigphp/TwigVoir et modifier les données sur Wikidata
Écrit en PHPVoir et modifier les données sur Wikidata
Système d'exploitation Multiplateforme (d)Voir et modifier les données sur Wikidata
Type Système de gabarit
Bibliothèque PHP (d)Voir et modifier les données sur Wikidata
Licence Licence BSDVoir et modifier les données sur Wikidata
Site web twig.symfony.comVoir et modifier les données sur Wikidata

Twig est un moteur de templates pour le langage de programmation PHP, utilisé par défaut par le framework Symfony.

Il a été inspiré par Jinja, moteur de template Python.

Fonctionnalités

Supportés par les environnements de développement intégrés tels que :

Et les éditeurs de texte :

Syntaxe

Pour créer un tableau itératif :

{% set myArray = [1, 2] %}

Un tableau associatif :

{% set myArray = {'key': 'value'} %}

Précédence des opérateurs

Du moins au plus prioritaire :

OpérateurRôle
b-andEt booléen
b-xorOu exclusif
b-orOu booléen
orOu
andEt
==Est-il égal
!=Est-il différent
<Inférieur
>Supérieur
>=Supérieur ou égal
<=Inférieur ou égal
inDans
matchesCorrespond
starts withCommence par
ends withSe termine par
..Séquence (ex : 1..5)
+Plus
-Moins
~Concaténation
*Multiplication
/Division
//Division arrondie à l'inférieur
%Modulo
isTest (ex : is defined ou is not empty)
**Puissance
|Filtre
[]Entrée de tableau
.Attribut ou méthode d'un objet (ex : country.name)

Filtres

Les filtres fournissent des traitements sur une expression, si on les place après elle séparés par des pipes. Par exemple :

Variables spéciales

Exemple

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 %}

Notes et références