Laegel a écrit :
Oui, voilà. Il faut voir le moteur de template comme un langage minimaliste utilisé afin de restreindre la logique. Parce qu'au final, on a besoin de quoi pour gérer les vues ? Des boucles, des conditions, de la récupération de certaines variables et basta. On ne va pas effectuer un gros calcul en plein milieu ou mettre à jour la base de données.
Ce que je reproche à PHP, ce sont ces satanées balises pour afficher une variable.
<?php echo $myVar;?>
ou même, soyons fous :
<?= $myVar;?>
Et quand il s'agit d'appliquer un filtre sur cette variable, ça devient tout de suite un bazar monstre :
<?php echo strtolower(htmlentities($myVar));?>
Et si ma variable n'existe pas/est vide ? Il faut la tester, sinon c'est du warning à gogo.
<?php echo isset($myVar) && !empty($myVar) ? strtolower(htmlentities($myVar)) : '';?>
Au lieu de ça, avec un moteur de template, on définie la valeur de 'myVar' et puis :
{{myVar | strolower}}
Et pouf, on est tranquille.
C'est un point sur lequel je trouve Java mieux intégré que PHP, car le langage offre la possibilité de créer des JSP, de façon identique à ce qu'on ferait sous PHP et pouvant donner un source aussi imbuvable, ou bien de sérialiser le flux HTML construit ex nihilo via une servlet.
Personnellement, et pour la raison évoquée ci-dessus, je n'utilise jamais de JSP, préférant de loin avoir la maîtrise totale de mon balisage au travers d'une servlet.
De toute façon, une JSP est une servlet qui s'ignore... puisque le premier travail d'un serveur web qui la reçoit est, justement, d'en parser le contenu et de créer la servlet correspondante qui prendra en charge la génération effective de la page HTML.
En ce sens, on peut grossièrement considérer la servlet comme une forme de "templating", puisqu'elle dispose de tout l'environnement de Java niveau variables, instructions de branchement, connexions SQL, etc.
Le générateur HTML sur lequel je travaille en ce moment ne se limitera pas au fait d créer des sites web statiques puisqu'il disposera également de modules permettant de générer la version Servlet, JSP, ASP ou PHP du même site. Une façon de répondre à un besoin d'entreprises dans lesquelles PHP n'est pas, à ma connaissance, le langage dominant.
Pour avoir parcouru le code de certaines JSP, c'est effectivement aussi inextricable que leur alter ego en PHP truffé de IF, boucles et autres joyeusetés...