Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

05/12/2004

Smarty : un moteur de template performant

Beaucoup de personnes ont écrit sur le débat faut-il utiliser un moteur de templates ou pas. Dans mon cas il n'y avait aucun doute : les templates sont obligatoire quel que soit la taille du projet. J'en ai utilisé plusieurs et Smarty les surclasse tous. Ces 3 principaux atouts sont dûs à la manière dont il est construit :

  • 1er atout ce sont les templates compilés,
  • 2ème atout son architecture modulaire avec la gestion des filtres,
  • Dernier atout un cache intégré.

Les préfiltres (filtres appelés lors de la compilation des templates) sont très intéressants car il est possible de donner à l'utilisateur une syntaxe simple. Les blogs de BlogSpirit sont constuit pratiquement grâce à ces préfiltres. Ainsi lorsque vous souhaitez manipuler des posts, il vous suffit d'écrire {posts}... {/posts} en spécifiant certains attributs. Vous savez qu'à l'intérieur de ces 2 balises vous manipulez des posts. Suivant certains attributs vous affichez les posts de tel jour, les posts de tel catégorie ... En effet un blog manipule la même entité : le post. Cependant sa représentation est différente suivant que l'on navigue à l'aide d'un calendrier, d'archives ou des posts.
MovableType utilise aussi le concept que j'appelle : “concept de bloc” en attendant de touver le nom correct ;-). Entre 2 balises vous savez que vous manipulez ce type de données et pas autres choses. Néanmoins je pense que MovableType a mal intégré la gestion des boucles et des tests conditionnels. A l'origine je voulais utiliser la syntaxe de MovableType afin d'être compatible mais j'ai changé d'avis lorsque je me suis heurté à des tests conditionnels.
Blogger utilise plus ou moins bien ce concept de bloc. Néanmoins les tests font défaut car il a été construit sur des tags et pas sur des tags se trouvant dans des blocs.
Certaines applications de blogs utilisent Smarty comme bblog. Pourtant le concept de blocs n'est pas utilisé ce qui est dommage.
Le logiciel opensource de blog Wordpress semble intégrer Smarty. Il faudra attendre s'ils utiliseront les possiblités de Smarty pleinement avec les concepts de blocs.
Cette façon d'encapsuler les données permet d'implémenter facilement des plugins sans que les données s'interfèrent entre elles.
Le langage XUL de Mozilla utilise cette encapsulation de manière différente car c'est un format XML : toute balise ouvrante à une balise fermante correspondante. Je pense que cette façon de procéder va se développer de plus en plus. Qu'est ce que vous en pensez ?

03/11/2004

Architecture 3 tiers

Beaucoup de projets opensource PHP ne sont pas batis sur une architecture 3 tiers. Or une conception en couche est un des points fondamentaux si l'on souhaite faire évoluer les applications web.

Une architecture est dite 3 tiers si une modification de la couche présentation (html par exemple), n'entraine pas forcément une modification de la couche métier (logique) ou de la couche data (accès aux données). Des outils facilitent cette conception tels que le moteur de template Smarty qui gère la couche présentation. (BlogSpirit l'utilise ;-)).
Au niveau de la couche data on peut citer adodb qui fournit des drivers pour la plupart des bases de données relationnelles du marché mais aussi pour du xml si on le souhaite. Au passage le benchmarck suivant http://phplens.com/lens/adodb/ montre très nettement qu'adodb est un des meilleurs drivers en PHP. Alors pourquoi s'en privé !

Pour la couche métier, il n'existe pas de framework dominant. On utilise en général des classes de projets déjà existants ou bien on les crée.

Une des premières régles en développement web que je donnerai c'est : regarder ce qu'il y a dans le monde libre . Il y aura toujours quelqu'un qui l'aura fait avant vous. Plus ou bien peut-être, mais ca fait gagner un temps précieux !

 
*