Académique Documents
Professionnel Documents
Culture Documents
Ingénierie
Développement Web
(PHP Symfony 5)
IV.1. Introduction
4
IV.1. Introduction Définitions
❖ Template:
• Le type de Template le plus connu est le Template PHP: un fichier texte interprété
par PHP qui contient du Text et du code PHP.
❖ Moteur de Template:
Un Moteur de Template est un script qui permet d’intégrer des templates, c’est-à-dire
des fichiers qui ont pour but d’afficher le contenu de votre page HTML de façon
dynamique (faire une boucle pour afficher toutes les annonces d’un plateforme, etc)
5
IV.1. Introduction
6
IV.1. Introduction
Exemples
• /index.html.twig // ce fichier se trouve directement dans /templates
7
IV.1. Introduction
❖ Plan de ce chapitre:
• Les outils pour afficher des variables : variables simples, tableaux, objets, appliquer
des filtres, etc. ;
• Les outils pour construire un vrai code dynamique : faire des boucles, des conditions,
etc. ;
• Les outils pour organiser vos templates grâce à l'héritage et à l'inclusion de templates.
Ainsi vous aurez un template maître qui contiendra votre design (avec les balises
<html>, <head>, etc.) et vos autres templates ne contiendront que le contenu de la page
(liste des news, etc.).
8
Ch. IV: Les TWIGs
IV.1. Introduction
9
IV.2. Le Moteur TWIG Syntaxe de base
10
IV.2. Le Moteur TWIG Affichage des variables (1/2)
11
IV.2. Le Moteur TWIG Affichage des variables (2/2)
12
IV.2. Le Moteur TWIG Affichage d’un Attribut
Lorsqu’on veut accéder à un attribut d’un objet avec twig on a le fonctionnement suivant pour
l’exemple {{objet.attribut}} :
• Vérification si l’objet est un tableau si oui vérifier que nous avons un index valide dans ce
cas elle affiche le contenu de objet[‘attribut’]
• Sinon, si objet est un objet, elle vérifie si attribut est un attribut valide public. Si c'est le cas,
elle affiche objet->attribut.
• Sinon, si objet est un objet, elle vérifie si attribut() est une méthode valide publique. Si c'est
le cas, elle affiche objet->attribut().
• Sinon, si objet est un objet, elle vérifie si getAttribut() est une méthode valide. Si c'est le
cas, elle affiche objet->getAttribut().
• Sinon, et si objet est un objet, elle vérifie si isAttribut() est une méthode valide. Si c'est le
cas, elle affiche objet->isAttribut().
• Sinon, elle n'affiche rien et retourne null.
13
IV.2. Le Moteur TWIG Les Filtres
15
IV.2. Le Moteur TWIG Les structures de contrôle
❖ Condition: {% if %}
IF
Syntaxe : Exemple
{% if employee.salaire < 250 %}
{% if cnd %} ce salaire est inférieur au smig
Block de traitement {%endif%}
{%endif%}
16
IV.2. Le Moteur TWIG Les structures de contrôle
❖ Condition: {% if %}
17
IV.2. Le Moteur TWIG Les structures de contrôle
❖ Boucle: {% for %}
18
IV.2. Le Moteur TWIG Les structures de contrôle
19
IV.2. Le Moteur TWIG Lien vers des fichiers
• Pour générer le path d’un fichier (img, css, js,…) nous utilisons la fonction asset.
• Cette fonction permet la portabilité de l’application en permettant une génération
automatique du path du fichier indépendamment de l’emplacement de l’application.
❖ Fichier css
❖ Image
20
IV.2. Le Moteur TWIG Héritage de Template
21
IV.2. Le Moteur TWIG Héritage de Template
Exemple (1/2):
Un template Père dans: templates/layout.html.twig
22
IV.2. Le Moteur TWIG Héritage de Template
Exemple (2/2):
Un template fils dans: templates/Advert/index.html.twig
23
IV.2. Le Moteur TWIG Héritage de Template
24
IV.2. Le Moteur TWIG Héritage de Template
25
IV.2. Le Moteur TWIG Inclusion de Template/Contrôleur
❖ Inclusion de Template
Afin d’inclure un Template ou un fragment de code dans un autre template on
utilise la syntaxe suivante :
{{ include('NomBundle:Dossier:nomTemplate', {'labelParam1':param1,'labelParam2':
param2,... }) }}
❖ Inclusion de Contrôleur
Inclure un contrôleur sans ou avec des paramètres:
{{ render(controller('NomBundle:NomController:NomAction', {'labelParam1':param1,
'labelParam2': param2,... }) }}
26
IV.2. Le Moteur TWIG Inclusion de Template/Contrôleur
27