À retenir
- Permet la séparation entre le fond (données) et la forme (présentation).
- Facilite la maintenance : si on modifie le gabarit, toutes les pages générées sont mises à jour.
- Utilise souvent des balises spéciales comme
{{ nom_utilisateur }}pour insérer les données.
Un moteur de gabarit est un outil logiciel qui permet de générer automatiquement des documents (souvent des pages web) en fusionnant un modèle fixe avec des données variables. C'est un peu comme une lettre à trous : le modèle contient le texte permanent, et le moteur vient remplir les espaces vides avec les informations spécifiques à chaque utilisateur ou situation.
Étymologie
Traduction de l'anglais template engine. Le mot « gabarit » désignait à l'origine un modèle de construction (notamment dans la marine) servant de guide. En informatique, il désigne la structure visuelle prédéfinie que l'on souhaite réutiliser.
Exemples d'usage
- Twig ou Smarty en PHP pour créer des sites web dynamiques.
- Jinja2 en Python, très utilisé avec le framework Flask.
- EJS ou Pug pour les applications Node.js (JavaScript).
- Mustache ou Handlebars, des moteurs simples utilisables dans de nombreux langages.
Cas d'usage
On l'utilise principalement en développement web pour séparer le design (HTML) de la logique du programme (le code qui traite les données). Il sert aussi pour la génération automatique d'e-mails personnalisés, de rapports PDF ou de fichiers de configuration système.
Bonnes pratiques
Il est recommandé de laisser le moins de logique possible dans le gabarit : il doit servir à l'affichage et non au calcul. Une autre règle d'or est de s'assurer que le moteur « échappe » (nettoie) les données pour éviter les failles de sécurité, comme l'injection de scripts malveillants (XSS).
Synonymes
Antonymes
Conseil
Si vous débutez, commencez par tester un moteur simple comme Mustache. Il vous apprendra à bien séparer vos variables de votre structure HTML sans vous perdre dans des fonctions complexes.
Questions fréquentes
Pourquoi ne pas écrire directement du HTML dans mon code ?
Mélanger du code de programmation et du HTML rend le projet illisible, difficile à tester et complique le travail collaboratif entre développeurs et designers.
Est-ce que cela ralentit le site ?
Le processus de fusion (le rendu) prend un peu de temps processeur, mais la plupart des moteurs modernes utilisent un système de mise en cache pour que l'impact soit quasi invisible pour l'utilisateur.