PHP : la bonne pratique

Apprendre les bonnes pratiques de programmation en PHP


précédentsommairesuivant

VIII. Templating

Les templates fournissent un moyen pratique de séparer les différentes préoccupations (contrôleur, logique, présentation). Les templates contiennent typiquement le HTML de votre application, mais ils peuvent aussi être utilisés avec d'autres formats comme le XML. Les templates sont souvent classés dans la catégorie « vues », le second composant du pattern MVC.

VIII-A. Bénéfices

L'intérêt principal d'utiliser les templates tient dans la séparation nette qui se crée entre la logique de présentation et le reste de l'application. Les templates sont seuls responsables de l'affichage du contenu formaté. Ils ne sont pas responsables de la récupération des données, ni de la persistance ou d'autres tâches complexes. Cela conduit à du code plus propre et plus lisible ce qui est particulièrement utile lorsque l'on travaille en équipe où l'on peut trouver à la fois des développeurs côté serveur (responsable de la partie « contrôleurs, modèles ») et les designers qui, eux, travaillent sur le code côté client.

Les templates améliorent aussi l'organisation du code pour l'affichage. Ils sont généralement placés dans un répertoire « views », chacun étant défini dans un seul fichier. Cette approche encourage la réutilisation de code où de larges blocs de code sont découpés de façon à obtenir un ensemble de briques « atomiques » et utilisables plus facilement. Par exemple, l'en-tête et le pied de page de votre site peuvent être définis dans des templates qui seront par la suite inclus respectivement au début et à la fin de chaque template d'une page.

Finalement, selon la bibliothèque que vous utilisez, les templates peuvent vous offrir plus de sécurité en échappant par exemple automatiquement les variables définies par les entrées d'un utilisateur. Quelques bibliothèques vous offrent même la possibilité d'isoler les variables et les fonctions (on parlera de « sand-boxing ») définies dans une liste blanche de façon, par ex., à limiter les dégâts collatéraux provoqués par une mauvaise utilisation faite par les designers.

VIII-B. Templates en PHP « pur »

Les templates « pur PHP » sont ceux qui n'utilisent que du code PHP natif. C'est un choix naturel étant donné que PHP est lui-même un langage de templating. Ce terme signifie tout simplement que vous pouvez combiner du code PHP avec un autre langage comme le HTML. Cela peut être considéré comme un atout du fait même que les développeurs n'ont pas à apprendre une syntaxe particulière. Par ailleurs, ces templates tendent à être plus rapides étant donné qu'il n'y a pas de phase de compilation.

Tous les frameworks PHP modernes utilisent un système de templating, la plupart se basant uniquement sur la syntaxe PHP. En dehors des frameworks, des bibliothèques comme Plates ou Aura.View rendent le travail avec les templates en PHP « pur » plus facile en offrant des fonctionnalités « modernes » telles que l'héritage, le layout et des extensions.

Exemple d'un template en PHP « pur » (utilisant Plates) :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
<?php $this->insert('header', ['title' => 'Profil utilisateur']) ?>

<h1>Profil utilisateur</h1>
<p>Bonjour, <?=$this->escape($name)?></p>

<?php $this->insert('footer') ?>

VIII-C. Templates compilés

Bien que le PHP ait évolué en un langage orienté objet mature, il ne s'est pas énormément amélioré en tant que langage de templating. Les templates compilés comme Twig ou Smarty remplissent ce vide en offrant une nouvelle syntaxe, adaptée aux exigences des applications modernes. Cela va de l'échappement automatique à l'héritage en passant par des structures de contrôles simplifiées. Ces templates ont été conçus dans l'idée de faciliter l'écriture, la sécurité et la maintenance du code gérant la partie visuelle de l'application. Les templates compilés peuvent même être partagés entre différents langages, Mustache étant un bon exemple de cela. Étant donné que ces templates doivent être compilés, il y a une légère baisse de performances. Cependant, cela peut être anecdotique si un système de cache approprié est utilisé.

Exemple d'un template compilé (utilisant Twig) :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
{% include 'header.html' with {'title': 'Profil utilisateur'} %}

<h1>Profil utilisateur</h1>
<p>Bonjour, {{ name }}</p>

{% include 'footer.html' %}

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Licence Creative Commons
Le contenu de cet article est rédigé par Josh Lockhart et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2017 Developpez.com.