
Etape 3 : Créer un template Twig pour afficher les informations
Découvrez comment utiliser Twig, le moteur de templates de Symfony, pour créer des vues HTML dynamiques et séparer la logique de présentation. Maîtrisez les bases de Twig.
Pourquoi utiliser un moteur de templates comme Twig ?
Dans l'étape précédente, nous avons généré du HTML directement depuis notre contrôleur PHP. Bien que cela fonctionne pour des pages très simples, cette approche devient rapidement ingérable et difficile à maintenir pour des applications plus complexes. Le code PHP se mélange au HTML, rendant la lecture, la modification et la collaboration (par exemple, avec des intégrateurs web) compliquées.
C'est là qu intervient un moteur de templates. Symfony intègre par défaut Twig, un moteur de templates puissant, flexible et sécurisé pour PHP. Twig permet de séparer clairement la logique applicative (dans les contrôleurs PHP) de la logique de présentation (dans les fichiers templates Twig).
Les principaux avantages de l'utilisation de Twig sont :
- Clarté et maintenabilité : Le code HTML est plus propre et plus facile à lire car il n'est pas entremêlé de blocs PHP complexes.
- Sécurité : Twig inclut par défaut un échappement automatique des variables, ce qui aide à prévenir les failles de sécurité XSS (Cross-Site Scripting).
- Fonctionnalités puissantes : Twig offre des structures de contrôle (boucles, conditions), l'héritage de templates, l'inclusion de fragments, des filtres et des fonctions pour manipuler les données, et bien plus encore.
- Concision : La syntaxe de Twig est souvent plus concise que l'équivalent en PHP pur pour les tâches de templating.
- Cache : Twig compile les templates en code PHP optimisé pour de meilleures performances.
Utiliser Twig est une bonne pratique fondamentale dans le développement Symfony. Il permet de construire des interfaces utilisateur riches et dynamiques de manière structurée et efficace.
Créer votre premier fichier template Twig
Les fichiers templates Twig sont généralement stockés dans le répertoire templates/ à la racine de votre projet Symfony. Il est courant d'organiser ces templates dans des sous-dossiers correspondant aux contrôleurs ou aux sections de votre site.
Pour notre page "A Propos", qui est gérée par StaticPageController, créons un sous-dossier static_page/ dans templates/. Ensuite, à l'intérieur de templates/static_page/, créez un nouveau fichier nommé about.html.twig.
Le chemin complet de notre template sera donc : templates/static_page/about.html.twig.
Voici le contenu que nous pouvons mettre dans ce fichier about.html.twig pour commencer :
{# templates/static_page/about.html.twig #}
{{ page_title }} {# Utilisation d'une variable Twig #}
{{ page_title }}
{{ description }}
Site créé le: {{ creation_date|date('d/m/Y') }}
{# Utilisation d'une variable et d'un filtre Twig #}
Ceci est un template Twig !
Analysons ce template :
{# ... #}: C'est un commentaire Twig. Il ne sera pas affiché dans le HTML final....