Apprendre à exploiter le moteur de templates Twig dans Symfony Par iner dukoid

Apprendre à exploiter le moteur de templates Twig dans Symfony Par iner dukoid Date de publication : 22 mars 2016 Dernière mise à jour : 29 août 2016 Ce tutoriel a pour but de vous apprendre le moteur de templates Twig, qui est intégré dans Symfony depuis la version 2, du framework PHP. Commentez Apprendre à exploiter le moteur de templates Twig dans Symfony par iner dukoid I - À propos..................................................................................................................................................................3 II - Avantages de Twig.................................................................................................................................................3 III - Le langage Twig....................................................................................................................................................4 III-A - Affichage des données................................................................................................................................ 4 III-B - Concaténation.............................................................................................................................................. 5 III-C - Les variables................................................................................................................................................6 III-D - Condition IF : {% if … %} … {% endif %}................................................................................................... 7 III-E - La boucle FOR: {% for … %} {% endfor %}................................................................................................8 III-F - Commentaire: {# … #}................................................................................................................................. 9 III-G - Les filtres..................................................................................................................................................... 9 III-H - Les fonctions..............................................................................................................................................10 III-I - Les macros..................................................................................................................................................10 III-J - Named Arguments......................................................................................................................................11 III-K - Les tags ou actions....................................................................................................................................11 III-L - Include de template (Symfony).................................................................................................................. 11 III-M - Render controller (Symfony)..................................................................................................................... 12 III-N - Personnaliser les templates: héritage, block…......................................................................................... 12 III-O - Les liens (Symfony)...................................................................................................................................14 III-P - L'inclusion de feuilles de style et de JavaScripts avec Twig (Symfony).................................................... 14 III-Q - Vérification de la syntaxe.......................................................................................................................... 14 III-R - Les formats de template (Symfony).......................................................................................................... 15 III-S - créer un filtre (Symfony)............................................................................................................................ 15 III-T - Math............................................................................................................................................................16 III-U - Coding Standards...................................................................................................................................... 16 IV - Remerciements...................................................................................................................................................17 - 2 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 iner dukoid. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://iner-dukoid.developpez.com/tutoriels/web/moteur-template-twig/ Apprendre à exploiter le moteur de templates Twig dans Symfony par iner dukoid I - À propos Twig est un moteur de templates qui a été créé par SensioLabs, les créateurs de Symfony. On le retrouve nativement dans les frameworks Symfony et Drupal8, mais il peut être installé sur la majorité des frameworks ainsi que dans un environnement PHP. Dans ce tutoriel pas de long discours explicatif. J'ai choisi de présenter un exemple Twig et son équivalent en PHP. Parfois aucune explication, en lisant l'exemple du code, on comprend le fonctionnement. Même si ce tutoriel est orienté Symfony, il peut être valable pour apprendre Twig de façon générale. II - Avantages de Twig A Twig permet de séparer la présentation des données du traitement. B Twig permet la personnalisation de page web. C Twig permet de rendre les pages web plus lisibles, plus claires. D Twig est rapide. E Twig apporte de nouvelles fonctionnalités. F Twig apporte plus de sécurité. Mais aussi : • Twig est facile à apprendre ; • les messages d'erreur Twig sont clairs et précis ; • Twig est supporté par la plupart des éditeurs de code. A. Bien souvent, afficher une donnée brute ne suffit pas. On veut lui appliquer un traitement logique avant de l'afficher (une conversion, un calcul…). Twig permet de définir en dehors de la page web des filtres que l'on pourra appliquer à la donnée. B. Un block menu, un block recherche, un block contenu… le tout défini dans un template lui-même héritable. C. On a souvent besoin de boucles, de conditions… à la construction d'une page web et pour cela, on utilise PHP. Votre page devient vite illisible, peu maintenable, sujette à de nombreuses erreurs. Twig par son langage est moins invasif que PHP et se substitue à celui-ci. TWIG {% for value in items if value.active %} <img src="{{ value.url }}"/> {% endfor %} PHP <?php foreach ($items as $value): if ($value.active) {?> <img src="<?php echo $value.url;?>"/> <?php } endforeach;?> D. - 3 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 iner dukoid. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://iner-dukoid.developpez.com/tutoriels/web/moteur-template-twig/ Apprendre à exploiter le moteur de templates Twig dans Symfony par iner dukoid La conversion Twig/PHP ne se fait qu'une seule fois au premier appel, ensuite il est mis en cache pour les autres appels (et donc finalement, c'est aussi rapide qu'en PHP). E. Twig apporte de nouvelles fonctionnalités: les macros, les filtres, les blocks, l'héritage de templates… F. Avec Twig, plus de sécurité avec l'échappement des variables qui est activé par défaut. III - Le langage Twig Faisons le tour de toute la syntaxe du langage Twig. {% %}: pour faire une action : un set de variable, une condition if, une boucle for ; {{ }}: pour afficher quelque chose. III-A - Affichage des données L'affichage des données et l'échappement : TWIG <b>{{ 'coucou' }}</b> coucou TWIG {% set data = '<h1>coucou</h1>' %} {{ data }} <h1>coucou</h1> Pour la sécurité, l'échappement est activé par défaut. Les balises ne sont pas interprétées. L'échappement convertit la donnée en code HTML avant l'affichage. Forcer l'interprétation des balises avec le filtre raw : TWIG {% set data = '<h1>coucou</h1>' %} {{ data|raw }} coucou Si l'échappement par défaut a été désactivé. Forcer l'échappement avec le filtre e : TWIG {% set data = '<h1>coucou</h1>' %} {{ data|e }} <h1>coucou</h1> L'affichage des données de différents types: objet, tableau… TWIG {{ produit.nom }} {{ produit.categorie.nom }} PHP <?php echo $produit->getNom(); echo $produit- >getCategorie()->getNom(); - 4 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 iner dukoid. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://iner-dukoid.developpez.com/tutoriels/web/moteur-template-twig/ Apprendre à exploiter le moteur de templates Twig dans Symfony par iner dukoid PHP ?> TWIG {{ produit["nom"] }} ou {{ produit.nom }} PHP <?php echo $produit["nom"]; ?> TWIG {% set animal = 'oiseaux' %} {{ "il y a des #{animal} sur le toit" }} {{ 14752 / 22 = #{14752 / 22} }} PHP <?php $animal = 'oiseaux'; echo sprintf('Il y a des %s sur le toit', $animal); echo printf('14752 / 22 = %d', (14752 / 22)); ?> L'affichage de données avec suppression d'espace entre deux balises à gauche ou à droite ou les deux : supprimer les espaces entre les balises HTML TWIG {% spaceless %} <div> <strong>foo bar</strong> </div> {% endspaceless %} Conversion en : (avant affichage) <div><strong>foo bar</strong></div> supprimer les espaces à gauche puis des deux côtés avec le caractère '-' : TWIG <li> {{- 'bonjour' }} </li> <li> {{- 'aurevoir' -}} </li> Conversion en: (avant affichage) <li>bonjour </li> <li>aurevoir</li> III-B - Concaténation TWIG {{ "Description du produit:" ~ produit.description }} PHP <?php echo "Description du produit:" . $produit->getDescription(); ?> TWIG {% set texte = greeting ~ name|lower %} {{ texte }} PHP <?php $texte = $greeting . strtolower($name); echo $texte; ?> TWIG {{ (greeting ~ name)|lower }} PHP <?php echo strtolower($greeting . $name); ?> - 5 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 iner dukoid. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://iner-dukoid.developpez.com/tutoriels/web/moteur-template-twig/ Apprendre à exploiter le moteur de templates Twig dans Symfony par iner dukoid III-C - Les variables TWIG {% set pi = 3.14 %} {% set foo = 'foo' %} - tableau simple avec une série de valeurs: {% set tableau=[1, 2, 3] %} - tableau avec des clés: {% set tableau={key1:value1, key2:value2} %} - tableau avec valeur et clé: {% set foo = [3, {"mot": "soleil"}] %} - afficher le contenu de 'mot' donc 'soleil': {{ foo[1]['mot'] }} - déclarer 2 variables en même temps // foo='foo' // bar='bar': {% set foo, bar = 'foo', 'bar' %} - foo contient le texte entre les 2 balises: {% set foo %} <div id="pagination"> … </div> {% endset %} [ … ] un tableau avec une série de valeurs. { … } un tableau avec des couples clé/valeur. Les variables globales (Symfony) parameters,yml parameters: webmaster: dark-vador Config.yml twig: globals: webmaster: %webmaster% uploads/S4/ tutoriel-twig.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 04, 2022
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.2932MB