twig
Syntaxe de modèle de base
Recherche…
Introduction
Explication des constructions de syntaxe de modèle de base
Accès aux variables
Dans Twig, il est possible d'accéder aux variables en utilisant des accolades à double accolade {{ variableName }}
.
Exemple de base d'utilisateur d'accueil
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ name }}</span>
</body>
</html>
Accès aux éléments du tableau
Twig comme paramètre peut recevoir un tableau. Pour accéder à un élément spécifique du tableau, vous pouvez utiliser la notation standard des parenthèses d'accès au tableau php {{ array[key] }}
.
Exemple précédent modifié pour utiliser le tableau comme paramètre
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user['name'] }}</span>
</body>
</html>
Accès aux propriétés de l'objet
Les objets peuvent également être transmis en tant que paramètre à un modèle. La notation 'Dot' (.) Permet d'accéder à des propriétés d'objet spécifiques {{ object.propertyName }}
.
Même exemple avec objet en paramètre
<!DOCTYPE html>
<html>
<body>
<span>Hello {{ user.name }}</span>
</body>
</html>
Des filtres
Les variables peuvent être modifiées à l'aide de filtres. Pour appliquer le filtre à la variable, suivez le nom de la variable avec pipe |
et nom du filtre:
{{ variable|filterName }}
Par exemple, pour afficher une valeur de variable dans une construction en majuscule.
{{ variable|upper }}
Les filtres peuvent être paramétrés. Les paramètres de filtre sont transmis entre parenthèses sous forme de liste séparée par des virgules (,):
{{ variable|filterName(param1, param2, ...) }}
Pour arrondir le nombre à la précision, nous pouvons utiliser un filtre round
, il accepte jusqu'à 2 paramètres. La première spécifie la précision (par défaut: 0), la seconde la méthode d’arrondi (par défaut: commune).
Pour arrondir le nombre à 1 décimale en utilisant la méthode commune, vous pouvez utiliser {{ number|round(1, 'common') }}
ou {{ number|round(1) }}
comme méthode commune par défaut.
Les filtres peuvent également être utilisés sur des objets incorporés et des variables de tableau:
{{ array['key'] | upper }} {{ object.text | upper }}
Les filtres peuvent également être concaténés:
{% set array = "3,1,2"|split(',') %}
{{ array | sort | first }}
La liste des filtres de base est disponible ici
Blocs conditionnels
Des parties de modèle peuvent être affichées de manière conditionnelle. If
déclaration est utilisée à cette fin. C'est similaire à if
dans les langages de programmation. Le contenu du bloc est exécuté / affiché si une expression est évaluée à true
.
{% if enabled == false %}
Disabled
{% endif %}
Désactivé ne sera affiché que si enabled
sera égal à false
.
Plusieurs branches peuvent être créées en utilisant elseif
et else
.
{% if temperature < 10 %}
It's cold
{% elseif temperature < 18 %}
It's chilly
{% elseif temperature < 24 %}
It's warm
{% elseif temperature < 32 %}
It's hot
{% else %}
It's very hot
{% endif %}
Pour boucle
Pour les boucles peuvent être très utiles dans TWIG, permettant la création de pages Web dynamiques.
Disons que nous créons un tableau simple de nombres:
{% set array = "3,1,2" %}
Nous pouvons alors parcourir le tableau et imprimer ce que nous voulons. Toute donnée dans le bloc de tableau sera sortie en fonction de la quantité de données dans le tableau. Cet exemple imprimera trois éléments h1 avec les données du tableau concaténées.
{% for current in array %}
<h1>This is number {{ current }} in the array </h1>
{% endear %}
Notez que {{ current }}
été utilisé pour accéder aux données et non à une version du array
Voir ce travail: https://twigfiddle.com/mxwkea/2
Un autre exemple de ceci pourrait être l'utilisation d'objets. Par exemple, disons que nous avons un objet Entity avec le champ 'name' avec ses getters et setters pertinents. Si un certain nombre de ces entités sont également stockées dans le tableau, elles sont accessibles comme tout autre objet dans TWIG:
{% for currentObject in ArrayOfObjects %}
{{ currentObject.name }}
{% endfor %}
Voir ce travail avec des données JSON: https://twigfiddle.com/mxwkea
Opérateur ternaire (sténographie If-Then-Else) et opérateur de coalescence
L'opérateur ternaire ( ?:
La prise en charge de l'opérateur ternaire étendu a été ajoutée dans Twig 1.12.0 .
{{ foo ? 'yes' : 'no' }}
Évalue:
si
foo
echoyes
sinon echono
{{ foo ?: 'no' }}
ou
{{ foo ? foo : 'no' }}
Évalue:
si
foo
écho, sinon échono
{{ foo ? 'yes' }}
ou
{{ foo ? 'yes' : '' }}
Évalue:
si
foo
echoyes
sinon echo rien
L'opérateur de coalescence null ( ??:
{{ foo ?? 'no' }}
Évalue:
Retourne la valeur de
foo
si elle est définie et non nulle,no
autrement
Traitement des espaces
Pour supprimer les espaces (espaces, tabulations, nouvelles lignes…) entre les balises HTML, utilisez le tag spaceless
:
{% spaceless %}
<div>
<span>foo bar </span>
</div>
{% endspaceless %}
{# produces output <div><strong>foo bar </strong></div> #}
Si vous devez supprimer des espaces sur un niveau par balise, utilisez le modificateur de contrôle d'espacement, à savoir le trait d'union (-). En l'utilisant, vous pouvez découper les espaces de début et de fin:
{% set value = 'foo bar' %}
<span> {{- value }} </span>
{# produces '<span>foo bar </span>' #}
<span> {{ value -}} </span>
{# produces '<span> foo bar</span>' #}
<span> {{- value -}} </span>
{# produces '<span>foo bar</span>' #}
<span {%- if true %} class="foo"{% endif %}>
{# produces '<span class="foo">' #}
<span {%- if false %} class="foo"{% endif %}>
{# produces '<span>' #}