Macadames' blog

Le silence est d'or, jusqu'à ce qu'il devienne plomb.

PhpTal

with 3 comments

PhpTal est un langage de templating XML pour Php, qui simplifie énormément la vie des intégrateurs web. Il permet entre autre d’utiliser des macros (héritages de templates), et surtout d’écrire un code 100% xhtml, compatible avec tous les éditeurs html wysiwyg, compréhensibles par tous les intégrateurs sans nécessité de mettre le nez dans le code Php, très facile à lire et à écrire …

Voici un exemple très simple de code php traduit en PhpTal.

Version Php


<?php foreach ($values as $value): ?>
 <div class="item">
  <div class="title">
    <?php if ($value->hasDate()): ?><?=$value->getDate()?><?php endif; ?>
    <a href="<?= $value->getUrl() ?>"><?=
    htmlentities($value->getTitle())
  ?></a>
  </div>
  <div class="content">
    <?= htmlentities($value->getContent()) ?>
  </div>
 </div>
<?php endforeach; ?>

Rien compris ? Pas envie de comprendre ? C’est pareil pour moi.
Voilà la version PhpTal


<div class="item" tal:repeat="value values">
  <div class="title">
    <span tal:condition="value/hasDate" tal:replace="value/getDate"/>
    <a tal:attributes="href value/getUrl" tal:content="value/getTitle"/>
  </div>
  <div id="content" tal:content="value/getContent"/>
</div>

Je ne suis pas un adepte de Php, bien au contraire, mais principe de réalité oblige, ce langage étant très répandu, un développeur web s’y frotte fatalement de temps à autre.

C’est mon cas aujourd’hui, je suis chargé de faire une css + refactoring du html pour un thème Drupal, ma première réaction a été de dire mais quel est le porc immonde qui a fait ça (version 1 du thème) ? En cherchant mieux j’ai vu que malheureusement, il n’y a pas beaucoup de solution, hormis des bidouilles pas trop standard dans le monde Drupal, pour structurer le html proprement.

Ca saute aux yeux quand on a fait du Zope , du Django ou du Pylons, il manque à Drupal un langage de template correct.

Car par exemple ces « page-toto.tpl.php » qu’on trouve dans les sites développés avec Drupal avec des copier-coller de code partout car on ne peut même pas hériter d’un template, cette syntaxe épouvantable et illisible qui ne permet pas d’indenter le code correctement, ces ‘print’, ces ‘echo’, comment peut-on accepter ça dans un framework soit-disant moderne ? Pour moi c’est un point de blocage qui ne donne pas envie de creuser plus loin ce CMS.

Voir cette petite discussion sur les templates Drupal http://drupal.geek.nz/blog/tplphps-are-not-templates ou même l’auteur de PhpTemplate le dit clairement (dans la première réponse affichée), PhpTal est la solution. Alors qu’est-ce qui freine ?  les performances ?  Il semble que PhpTal a de bonnes performances sous Php5 ou du moins qu’il n’est pas si gourmand en ressources lorsqu’il est utilisé sans excès. Puisque la seule solution au problème du manque de souplesse de PhpTemplate est l’éducation des développeurs de modules, des  intégrateurs et des webmasters (voir la présentation associée à l’article ci-dessus) , incitation à faire du code Php le plus dépouillé possible (mission impossible à mon avis),  pourquoi ne pas les éduquer à utiliser correctement PhpTal ? Pourquoi ne pas l’intégrer dans le coeur de Drupal en tant que moteur de template alternatif  ?

A côté de ça quel gain de productivité ça apporterait ! On pourrait enfin avoir un minimum de plaisir en écrivant des pages Php, des pages qui seraient alors maintenables, et pas ce code qui ressemble aux bidouillages illisibles qu’on pratiquait il y a plus de dix ans avant l’apparition des CMS (voir les exemples de la présentation tous issus du coeur de Drupal, imaginez ce que ça donne dans la réalité de thèmes ou de modules développés à l’arrache pour des clients pressés  !!).

Bien-sûr mon point de vue est aussi partisan, car je fais du Plone depuis plusieurs années. Ce qui m’a vraiment attiré dans Plone fin 2003 c’était Zope et surtout le ZPT, le ZPT qui est à l’origine de PhpTal, sa version Python. Tous les intégrateurs qui ont pratiqué le ZPT vous le diront, facile à apprendre, plaisant à coder, facile à lire, compatible avec des éditeurs html wysiwyg, des avantages énormes, alors les drupalistes qu’attendez-vous ?

Bon c’est pas ça qui va transformer le Php en Python hein ? Mais ça n’est pas mon problème, je ne touche que rarement au coeur du code.

http://phptal.org/

Written by macadames

7, octobre 2011 à 6:44

Publié dans open source, Uncategorized

3 Réponses

Subscribe to comments with RSS.

  1. Hola si tous les ploneurs de France se mettent à Drupal et Php, c’est vraiment la crise là 😮

    Faut lui amener une caisse de Chimay, je vois que ça pour le guérir de cette peste.

    Ton ami fierrot le plone

    7, octobre 2011 at 7:44

    • A qui la caisse de Chimay, à moi ?

      Allez pour deux caisses j’enlève l’article 😉

      macadames

      7, octobre 2011 at 8:21

  2. En fait il existe un theme engine Phptal pour drupal

    http://drupal.org/project/phptal

    Mais il ne fait pas partie du core, et aucun thème disponible en open source ne l’utilise, quel dommage..

    macadames

    10, octobre 2011 at 5:42


Laisser un commentaire