Drupal : PHPTemplate, qu'en penser ?
Par NiCoS le mercredi 6 septembre 2006, 22:35 - Trucs de geek - Lien permanent
(pour la petite histoire, PHPTemplate, c'est le langage de template de Drupal)
C'est la question que je me pose depuis une heure maintenant et j'avoue ne pas trop savoir quoi en penser. Donc si toi cher lecteur tu as une opinion, n'hésite pas à la partager... 
Ma première impression, c'est qu'avec des trucs comme ça :
geshi php <?php if (isset($secondary_links)): ?> <ul id="secondary"> <?php foreach (array_reverse($secondary_links) as $link): ?> <li><?php print phptemplate_wrap_links($link, 2); ?></li> <?php endforeach; ?> </ul> <?php endif; ?>
- lisibilité pas / peu évidente avec ce mix de html et php ? mais c'est peut être une question d'habitude...
- ne risque-t-on pas d'avoir des règles métier dans le code du template qui devrait être ailleurs ?
- la liste des variables est impressionnante mais doit aider dans pas mal de cas mais en même temps, que se cache-t-il dans ces variables (juste du texte ? l'appel à un autre fichier de template ? que sais-je ?)
- il faut partir d'un template simple si on veut se faire la main (apparemment, j'ai pas pris le plus simple pour commencer...
) - La courbe d'apprentissage est-elle longue et dure ou bien simple mais impressionnante vue de loin ?
- etc.
Ces sur ces grandes questions que je pars me coucher...
Commentaires
C'est du PHP quoi !
Moi je pense que PHP c'est bien pour un langage de template.
L'interêt d'un énième langage de templates est pour moi plus que discutable :
www.massassi.com/php/arti...
L'avantage d'utiliser PHP (qui est aussi un langage de template) est justement de ne pas avoir à apprendre un nouveau langage de mise en forme. Certes le risque est de voir les intégrateurs pourir le code mais c'est également possible avec un langage de template très peu permissif :
<loop while="true">
<p>Je vais faire tomber le serveur.</p>
</loop>
Pour ce qui est de l'ajout de code métier dans les templates, dans ce cas c'est vraiment un problème de compétence de la part de l'intégrateur. Je pense qu'avec une bonne explication au départ ça devrait rouler.
La seule circonstance où je trouve les langages de templates appropriés est quand on le met à disposition du grand public sur une solution hebergée. Dans ce cas, il est effectivement impératif de verouiller au maximum les dérives possibles...
Et puis comme le dit l'article précemment cité dans mon commentaire :
"In short, the point of template engines should be to separate your business logic from your presentation logic, not separate your PHP code from your HTML code."