Post

Symfony – Les vues Twig

Symfony – Les vues Twig

Cours 6 — Les vues Twig

Introduction

Une vue Twig permet d’afficher des pages HTML dans Symfony.

Le contrôleur prépare les données puis les transmet à Twig qui se charge de l’affichage.

Twig évite de mélanger le code PHP et le code HTML.

Note Jekyll

Dans un site Jekyll, le moteur Liquid utilise aussi les accolades de Twig. Pour afficher du code Twig dans un article, il faut entourer les blocs Twig avec les balises raw et endraw de Liquid. Dans le texte du cours, on évite d’écrire directement les symboles Twig complets afin que Jekyll ne les interprète pas.


Créer une vue Twig

Créer un fichier dans le dossier :

1
templates/

Exemple :

1
templates/accueil/index.html.twig

Contenu :

1
<h1>Bienvenue sur SoigneMoi</h1>

Afficher une vue depuis un contrôleur

1
2
3
4
5
#[Route('/accueil', name: 'app_accueil')]
public function index(): Response
{
    return $this->render('accueil/index.html.twig');
}

Lorsque l’utilisateur appelle l’URL :

1
/accueil

Symfony affiche :

1
templates/accueil/index.html.twig

Afficher une variable

Contrôleur :

1
2
3
4
5
6
7
#[Route('/bonjour', name: 'app_bonjour')]
public function bonjour(): Response
{
    return $this->render('bonjour/index.html.twig', [
        'prenom' => 'Gérard'
    ]);
}

Vue Twig :

1
<h1>Bonjour {{ prenom }}</h1>

Résultat :

1
Bonjour Gérard

Afficher plusieurs variables

Contrôleur :

1
2
3
4
return $this->render('patient/index.html.twig', [
    'nom' => 'Durand',
    'prenom' => 'Paul'
]);

Vue Twig :

1
<p>{{ prenom }} {{ nom }}</p>

Afficher une condition

1
2
3
4
5
{% if age >= 18 %}
    <p>Adulte</p>
{% else %}
    <p>Mineur</p>
{% endif %}

Afficher une boucle

1
2
3
{% for patient in patients %}
    <p>{{ patient.nom }}</p>
{% endfor %}

Conclusion

Twig est le moteur d’affichage de Symfony.

À retenir :

  • les vues se trouvent dans le dossier templates ;
  • un contrôleur utilise render() pour afficher une vue ;
  • les variables sont affichées avec les doubles accolades Twig ;
  • les structures de contrôle utilisent les balises Twig avec pourcentage ;
  • Twig permet de séparer clairement l’affichage et le traitement.
This post is licensed under CC BY 4.0 by the author.