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
rawetendrawde 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.