Twig
Twig est un moteur de templates pour le langage de programmation PHP, utilisé par défaut par le framework Symfony.
Twig
| Première version | |
|---|---|
| Dernière version | 3.6.0 ()[1] |
| Dépôt | github.com/twigphp/Twig |
| Écrit en | PHP |
| Système d'exploitation | Multiplateforme |
| Type |
Moteur de template (en) PHP library (d) |
| Licence | Licence BSD |
| Site web | twig.symfony.com |
Fonctionnalités
- contrôle de flux complexe
- échappement automatique
- héritage des templates
- filtres variables[3]
- internationalisation (via
gettext) - macros
- langage extensible[4].
Supportés par les environnements de développement intégrés tels que[5] :
- Eclipse
- Komodo
- NetBeans
- PhpStorm (nativement)
- Microsoft Visual Studio
Et les éditeurs de texte :
Syntaxe
- {{ ... }} : appel à une variable ou une fonction PHP, ou un template Twig parent (
{{ parent() }}). - {# ... #} : commentaires.
- {% ... %} : commande, comme une affectation, une condition, une boucle ou un bloc HTML.
- {% set foo = 'bar' %} : assignation[6].
- {% if i is defined and i == 1 %} ... {% endif %} : condition.
- {% for i in 0..10 %} ... {% endfor %} : compteur dans une boucle.
- ' : caractère d'échappement.
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[7] :
| 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) |
Filtres
Les filtres fournissent des traitements sur une expression, si on les place après elle séparés par des pipes. Par exemple[3] :
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.
Variables spéciales
loopcontient les informations de la boucle dans laquelle elle se trouve. Par exempleloop.indexdonne le nombre d'itérations déjà survenue.- Les variables globales commencent par des underscores, par exemple :
- _route (partie de URL située après le domaine)
- _self (nom de du fichier courant)
- Donc, pour obtenir la route d'une page :
{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
- Les variables d'environnement CGI, telles que
{{ app.request.server.get('SERVER_NAME') }}
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
- « Release 3.6.0 », (consulté le )
- (en) « Templating Engines in PHP /Articles - Fabien Potencier », sur potencier.org (consulté le ).
- Symfony, « Filters - Documentation - Twig - The flexible, fast, and secure PHP template engine », sur twig.sensiolabs.org
- Symfony, « Extending Twig - Documentation - Twig - The flexible, fast, and secure PHP template engine », sur twig.sensiolabs.org
- Symfony, « Twig for Template Designers - Documentation - Twig - The flexible, fast, and secure PHP template engine », sur twig.sensiolabs.org
- Symfony, « set - Documentation - Twig - The flexible, fast, and secure PHP template engine », sur twig.sensiolabs.org
- Symfony, « Twig for Template Designers - Documentation - Twig - The flexible, fast, and secure PHP template engine », sur twig.sensiolabs.org
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.