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 echo yes sinon echo no


{{ foo ?: 'no' }}

ou

{{ foo ? foo : 'no' }}

Évalue:

si foo écho, sinon écho no


{{ foo ? 'yes' }}

ou

{{ foo ? 'yes' : '' }}

Évalue:

si foo echo yes 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>' #}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow