Bonjour,
L'intérêt principal de Smarty réside dans la séparation du contenu et de la forme.
Le concept d'un système de template en général et de Smarty en particulier est de réserver les tâches de production des données à PHP et de mettre le code de présentation (HTML en l'occurence) dans des 'templates' ou modèles, un fichier qu l'on suffixera dans nos exemples par '.TPL'
L'analyse des avantages et inconvénients de Smarty que je fais ci-après est le fruit des quelques expériences que j'ai eu avec ce moteur de templates. Je sais que tout le monde ne sera pas forcément d'accord avec les arguments avancés. Je vous encourage donc à mettre Smarty en oeuvre et vous faire vous-même une opinion... l'important est d'essayer pour se faire une idée.
L'utilisation du système de template Smarty n'est pas à la portée de tous, souvent le développeur non chevronné sera rebuté par son utilisation. Par exemple, il est fréquent de ne pas trouver immédiatement la façon d'accéder à sa variable dans le template (même avec un peu d'expérience d'ailleur)... ce qui peut être un peu irritant.
Même avec une certaine expérience en PHP "traditionnel" (production et présentation PHP mélangés), l'utilisation de Smarty n'est pas évidente, elle remet en cause nombre de choses dans la manière de développer.
L'apprentissage du langage de templates (ce que l'on retrouvera dans nos fichiers .TPL) est indispensable. Cela pourra aussi en refroidir plus d'un. Ainsi il faudra connaître les variables (et les innombrables façon d'y accéder), les fonctions, le debogage. C'est ce que je me propose de vous expliquer.
Le premier avantage que je vois à l'utilisation de Smarty est le gain de temps à moyen/long terme. Si sa mise en place peut prendre un peu plus de temps, plus on avance dans un projet et plus Smarty apparaît comme une évidence.
Le second avantage est la plus grande facilité de travailler à plusieurs. Prenez une équipe de développement avec des niveaux disparates (c'est le cas où je travaille). Ce découplage métier / présentation permet potentiellement à tout le monde de participer au développement bien plus facilement que dans un développement PHP plus traditionnel.
Un autre avantage qui m'est particulièrement cher (demandez donc à mes collègues !!!) est qu'avec Smarty au final le code produit est plus "propre" et "compréhensible" .. au final mieux organisé en particulier dans les gros projets. Bien sur il est possible de coder comme un cochon quand même !!!
Enfin, un système de cache permet d'accélérer considérablement la vitesse des traitements (la page n'est pas systématiquement recalculée). La décision d'utiliser la gestion de cache est à la charge du développeur.
Vous l'aurez compris, en ce qui me concerne, je suis convaincu que Smarty est un outil de PRODUCTIVITE
Mais non, ce n'est pas moi qui écris tous cela, le viens de le chiper ici...
INITIATION mais il y a plein d'autres lien... moi... je n'y comprend rien
Bonne soirée et bonne lecture