Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > Templates

Templates Forum d'entraide sur les templates (gabarits) avec PHP. Exemples : Smarty, TinyButStrong... Avant de poster -> FAQ templates et Cours gabarits

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Quel système de template utilisez/utiliseriez - vous ?
PHPLib 40 27,59%
VTemplate 5 3,45%
Smarty 81 55,86%
ModeliXe 10 6,90%
PowerTemplate 1 0,69%
PHPTemplate 5 3,45%
Xtemplates 2 1,38%
EcTemplate 0 0%
UltraTemplate 0 0%
Itemplate 0 0%
Quick Template 1 0,69%
YATS 0 0%
Votants: 145. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 10/11/2003, 15h32   #41
Zogzog4
Inactif
 
Inscription : novembre 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 77
Points : 78
Points : 78
Bonjour

Concernant les moteurs de Templates, j'ai été confronté au même dileme ))

Concernant l'Orienté Objet, cette technique de prog n'est pas qu'une question de "beauté"

C'est surtout une approche différente, une autre logique de programmation, d'abstraction.

La programmation procédurale est nécessaire pour programmer en Objet, mais l'Objet permet de modéliser différemment les problèmes.

Il rend possible, par exemple, de "coller" plus précisement au "monde réel" :
L'OBJET :
=>ses attributs
=>ses méthodes

Le polymorphisme n'est pas le seul atout : les concepts d'encapsulation, d'héritage, d'agrégation sont aussi très importants, à mon goût.

L'objet permet aussi d'accroitre la ré-utilisablité des composants

Enfin bref, bon courage à toi
Zogzog4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2003, 17h56   #42
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Tout a fait d'accord pour l'objet.
Pour ce qui est des templates, j'utilise XTemplate depuis 2000, tres simple, tres rapide (assez proche de la syntaxe pear::template ou de celle de phplib (c'est peut être celui de la phplib d'ailleurs?)
Les systemes qui permettent de coder genre templeet ou smarty me semble vraiment faire double emploi avec php.

Et j'ai un systeme de cache pour mon CMS, je genere tout avec XTemplate et zouu, en incluant du code PHP directement dans les blocs cachés quand j'ai besoin d'interactions en vitrine : le tout donne un truc super rapide et leger, quasiment pas d'acces sql, tout en étant super souple puisque tout est automatique généré à partir de la bd

Cédric
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2003, 11h23   #43
_gerald_
Invité de passage
 
Inscription : décembre 2003
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1
Points : 1
Points : 1
Par défaut Smarty

Personnellement, j'utilise Smarty.

En voici les raisons principales:
- Contrairement à ce que j'ai lu ici, sa syntaxe est simple.

pour afficher une variable {$maVariable}
$tpl->assign ('maVariable', $valeur);//coté PHP

Pour les boucles,
{foreach from=$array item=element}
{$element}
{/foreach}
$tpl->assign ('array', array (1, 2, 3, 4));

Et nous avons passé les 90% des besoins d'une application web.

- Il est rapide -> ses templates sont compilés en PHP. Pas besoin donc de "parser" le fichier template à chaque affichage de page.

- Il est extrêmement souple.
Il est possible d'écrire ses propres balises en deux temps trois mouvements.
Personnellement, je me suis développé des balises pour afficher des calendrier, des éditeurs de textes, des messages d'erreurs, ..., ...

- Il dispose en standard de modificateurs de variables très biens pensés
vous voulez n'afficher que les 30 premiers caractères d'un élément
{$maChaine|truncate:30}
Vous voulez protéger votre adresse email des webspiders avec une encryption (simple)
{mailto adress=$monAdresse enctype=javascript}
(Tout cela est assez bien documenté)

- Il est "soutenu" par la communauté PHP, ce qui est signe de pérénité.

Le seul inconvénient que je lui trouve, si c'en est un, c'est qu'il est nécessaire de disposer d'un serveur "configurable" pour les fichiers templates compilés. Ce qui exclu pas mal d'hébergeurs gratuits.

La meilleure façon de tirer partie de Smarty:
Utilisez un cache PHP pour supprimer les "lourdeurs" de la bibliothèque.
Développez autant que ce peut vos propres tags pour vous faire économiser du temps sur vos développement.

bref, amha ;-)
_gerald_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2003, 11h14   #44
touv
Invité de passage
 
Inscription : décembre 2003
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1
Points : 1
Points : 1
Par défaut Phptal

Personnellement j'utilise PHPTAL http://phptal.sourceforge.net/ pour les raisons suivantes :

+ 'utilisation d'attributs spécifiques permet de voir dans un navigateur le rendu des templates (pratique pour les designers)
+ les templates sont au format XML
+ Intégre un système permettant d'avoir des templates multi-langue
+ "compatible" avec les templates zope (grand nombre de ressources)
+ Intégre un système de cache
+ Les fonctionnalités sont restreintes se qui délimite bien la mise forme (PHPTAL), des traitements (PHP)

A noter, que l'orientation totalement objet permet de surcharger les mécanismes de cache et de mutlilanguisme.
touv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2003, 18h03   #45
Viiince
Invité de passage
 
Inscription : novembre 2003
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 4
Points : 1
Points : 1
pour moi c'est celui de phpbb, car je le connais bien, et qu'il me convient...
Viiince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2003, 20h32   #46
drakakoo
Invité de passage
 
Inscription : décembre 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 2
Points : 2
Points : 2
Par défaut Et pourquoi pas mala-template

Bonsoir,

Je prends la discussion en cours moi j'utilise Mala-Template sur un projet de portail. L'intérêt est qu'il est spécialisé dans la gestion des bases de données avec les templates.

Je l'ai déjà mis en prod chez un client sur un intranet, par contre il ne propose pas encore de système de cache, je l'ai développé moi-même dans mon framework.

Le site www.mala-template.net

Stéph.
drakakoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2003, 00h38   #47
-COil-
Membre du Club
 
Consultant informatique
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 40
Points : 40
Envoyer un message via MSN à -COil-
Il y a aussi une nouvelle version de la gestion de template de Pear, Flexy que j'aimerai bien essayer :

--> http://pear.php.net/package/HTML_Template_Flexy

Mais encore en version beta.
-COil- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2004, 15h13   #48
dxdragon
Invité de passage
 
Inscription : janvier 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 4
Points : 4
Points : 4
Envoyer un message via Yahoo à dxdragon
Par défaut template

Pour ma part j'utilise un template proprietaire de ma creation.

Avantage :
- pas besoin d'apprentissage
- plus adapté a mes besoin
- un systeme proche des jsp/servlet
- code compilé et caché

Smarty ca a l'air bien mais trop trop complexe a mon gout
dxdragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2004, 21h24   #49
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Salut
Voilà, ce soir, j'ai décidé de me mettre concrètement aux templates et de tester quelques scripts éxistants.


J'ai donc recherché un système de templates simple, souple, efficace, plutôt rapide (mais je ne développe pas de sites avec un traffic tel que je sois très regardant sur l'optimisation ). Je ne veux pas voir de programmation dans les templates (sinon ça sert à rien , autant rester en PHP => j'élimine déjà Smarty).

Je dois au moins pouvoir spécifier dans mes templates des variables, des zones, pouvoir faire d'une manière simple des boucles sur une zone, pour par exemple afficher les résultat d'une requête MySQL (de préférence que ce soit moi qui gère avec for ou while).

De plus, certains facteurs peuvent être appréciables, comme un système de cache, la lisibilité et la convivialité de la syntaxe, la langue d'origine, l'évolutivité (si les développeurs sont actifs ou si ça n'a pas bougé depuis deux ans), et enfin la documentation et les exemples.


J'ai donc fait mon étude comparative sur les classes de templates citées sur ce topic : ModeliXe, Smarty, TinyButStrong, VTemplate, TPLN, PHPLib/PhpBB, XTemplate, FastTemplate, MALA Template, Flexy (PEAR), Icitrus. Je suis venu vous apporter mon travail pour que tout le monde en profite .


Attention, ces données peuvent être incomplètes et sont à vérifier. Dans la plupart des cas, j'ai fait mes observations sur les exemples donnés. Il se peut que parfois j'ai mal interpreté les exemples ou qu'il y ait plusieurs manières de procéder .


Citation:
ModeliXe :
- Syntaxe d'une variable dans le template : <mx:text id="Variable" />
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <mx:bloc id="Zone" >
- Syntaxe pour répétition zone : for (...)
- Programmation dans template : non
- Système de cache intégré : oui
- Url : modelixe.phpedit.com
- Autres : FR, communauté active, très utilisé
- Appréciations : Syntaxe spéciale par rapport aux autres, mais plutot bien dans l'ensemble

Smarty :
- Syntaxe d'une variable dans le template : {$title}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : {Section name=Zone}
- Syntaxe pour répétition zone : {Section name=Zone loop=$article}
- Programmation dans template : oui
- Système de cache intégré : oui
- Url : smarty.php.net
- Autres : très utilisé
- Appréciations : Il serait super si le template restait seulement un template, et qu'il n'y avait pas de programmation dedans.

TinyButStrong :
- Syntaxe d'une variable dans le template : [Variable]
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : il n'y a pas de définition, c'est assez bizarre comme truc
- Syntaxe pour répétition zone : $TBS -> MergeBlock ("blk1", $cnx_id, "SELECT * FROM t_tbs_exemples");
- Programmation dans template : non
- Système de cache intégré : oui
- Url : tinybutstrong.com
- Autres :
- Appréciations : Bof bof à cause des définition zones et de la répétition prise en charge par la classe

VTemplate :
- Syntaxe d'une variable dans le template : {#Variable}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <!--VTP_Zone-->
- Syntaxe pour répétition zone : ?? pas trouvé dans les exemples, sûrement un for (...)
- Programmation dans template : non
- Système de cache intégré : oui
- Url : vtemplate.sourceforge.net
- Autres : Assez bien
- Appréciations :

TPLN :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : $TPLN -> Parse ("my_text_1", "Bold Text", "|B");
- Syntaxe d'une zone dans le template : <bloc::Zone>
- Syntaxe pour répétition zone : for (...)
- Programmation dans template : non
- Système de cache intégré : non
- Url : tpln.sourceforge.net
- Autres :
- Appréciations : Pas trop mal

PhpLib/PhpBB :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <!-- BEGIN Zone -->
- Syntaxe pour répétition zone : ?? pas trouvé dans les exemples, sûrement un for (...)
- Programmation dans template : non
- Système de cache intégré : non
- Url : phplib.sourceforge.net
- Autres :
- Appréciations : Plutôt bien

XTemplate :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <!-- BEGIN: Zone -->
- Syntaxe pour répétition zone : for (...)
- Programmation dans template : non
- Système de cache intégré : non
- Url : sourceforge.net/projects/xtpl/
- Autres :
- Appréciations : Plutôt bien

FastTemplate :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <!-- BEGIN DYNAMIX BLOCK: Zone -->
- Syntaxe pour répétition zone : for (...)
- Programmation dans template : non
- Système de cache intégré : non
- Url : www.thewebmasters.net/php/FastTemplate.phtml
- Autres : FR
- Appréciations : Moyen

MALA Template :
- Syntaxe d'une variable dans le template : [[Variable]]
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <Zone>
- Syntaxe pour répétition zone : Pris en charge par la classe
- Programmation dans template : ?? je pense que non
- Système de cache intégré : ?? je pense que non
- Url : mala-template.net
- Autres :
- Appréciations : Bof (je n'aime pas la manière dont les boucles de zone sont faites)

Flexy (PEAR) :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : {Variable:b}
- Syntaxe d'une zone dans le template : ??
- Syntaxe pour répétition zone : {foreach:var,key,value}
- Programmation dans template : oui
- Système de cache intégré : ??
- Url : pear.php.net/packages/HTML_Template_Flexy
- Autres :
- Appréciations : Bof (je n'aime pas la manière dont les boucles de zone sont faites)

Icitrus :
- Syntaxe d'une variable dans le template : {Variable}
- Mise en forme directe : non
- Syntaxe d'une zone dans le template : <!-- @@@ Zone @@@ -->
- Syntaxe pour répétition zone : ?? pas trouvé dans les exemples, sûrement un for (...)
- Programmation dans template : non
- Système de cache intégré : non
- Url : www.icitrus.net/template.html
- Autres : FR
- Appréciations : Assez simple, plutôt bien (trop simple ??)
Voilà

Après avoir éliminé les scripts qui ne répondent pas à ma demande, voici les systèmes de templates que je vais regarder en détail avec des cas concret d'utilisation :
  • ModeliXe
    PHPLib
    XTemplate
    FastTemplate
    Icitrus
Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2004, 21h46   #50
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Encore un point pour ModeliXe puisqu'en regardant de plus près sur leur site, il semblerait qu'il propose deux syntaxes dans les templates. L'une citée plus haut, propre à ModeliXe, et l'autre, plus traditionnelle avec des accolades, proche de FastTemplates.

Je penche de plus en plus pour ModeliXe ...

Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2004, 22h32   #51
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Après avoir lu la doc, mon choix semble plutôt se porter vers PHPLib.

En fait, il se distingue deux groupes. C'était soit un système simple et rapide comme PHPLib, soit un système plus évolué s'éloignant un peu de l'origine des templates (mais pas autant que smarty), ModeliXe. J'ésite encore sur les deux.

Lisez la doc, c'est très intéressant.

Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2004, 14h16   #52
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Il semblerait que PEAR contienne une classe nommée Sigma et qui ressemble a première vu à celle de la PHPLib.

Encore une classe à approfondir...

Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2004, 21h06   #53
Tuxxy
Nouveau Membre du Club
 
Inscription : janvier 2003
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 44
Points : 38
Points : 38
Personnellement je penche plutôt vers phplib au vu de ses bonnes performances et de sa relative simplicité.

A propos de phpLib, je voudrais savoir les différences entre le phpLib original, la version modifiée pour phpBB et une version adaptée par Pear (http://pear.php.net/package/HTML_Template_PHPLIB).
Tuxxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2004, 19h41   #54
-COil-
Membre du Club
 
Consultant informatique
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 40
Points : 40
Envoyer un message via MSN à -COil-
Interessant le comparo, je vois pas pourquoi la "complexité" de Smarty vous rebute, il suffit de pas utiliser les fonctions avancées... En tous cas moi je fais confiance a Smarty, car fait parti du site PHP, bonne doc, team de dev active a priori...
-COil- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2004, 07h33   #55
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Citation:
Envoyé par -COil-
Interessant le comparo, je vois pas pourquoi la "complexité" de Smarty vous rebute, il suffit de pas utiliser les fonctions avancées... En tous cas moi je fais confiance a Smarty, car fait parti du site PHP, bonne doc, team de dev active a priori...
Salut

En fait, pour moi, utiliser les templates, c'est séparer le contenu (BDD ou autre), la présentation (templates) et la programmation (PHP). Je ne veux donc rien de plus dans mes templates que du code HTML (et bien sur JS, CSS), ainsi que des variables {Var} et des blocs <!-- BEGIN bloc -->.

Je ne vois pas l'intérêt d'aller inventer un autre mini langage de programmation dans les templates Smarty, tant qu'à mettre un bout de prog, autant que ça soit en PHP.

Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2004, 15h19   #56
Tuxxy
Nouveau Membre du Club
 
Inscription : janvier 2003
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 44
Points : 38
Points : 38
En tout cas, pour les débutants, je conseille absolument de prendre des bonnes habitudes dès le début. Personnellement j'utilisais pas les templates et je pensais que ce serait compliqué mais en fait, une fois qu'on a compris la logique de base, c'est très simple et génial pour faire un code simple, logique et facile à maintenir.
Tuxxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2004, 20h10   #57
-COil-
Membre du Club
 
Consultant informatique
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 40
Points : 40
Envoyer un message via MSN à -COil-
Citation:
Envoyé par totofweb
En fait, pour moi, utiliser les templates, c'est séparer le contenu (BDD ou autre), la présentation (templates) et la programmation (PHP). Je ne veux donc rien de plus dans mes templates que du code HTML (et bien sur JS, CSS), ainsi que des variables {Var} et des blocs <!-- BEGIN bloc -->.

Je ne vois pas l'intérêt d'aller inventer un autre mini langage de programmation dans les templates Smarty, tant qu'à mettre un bout de prog, autant que ça soit en PHP.

Totofweb
Ben non, ya aussi la logique d'affichage et de presentation qu'il faut prendre en compte et qui doit etre traitée dans les templates.
-COil- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2004, 17h55   #58
Tuxxy
Nouveau Membre du Club
 
Inscription : janvier 2003
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 44
Points : 38
Points : 38
Juste une question : quelle différence y a-t-il entre un système de templates et des fonctions correspondantes du style :

Code :
1
2
3
4
5
6
7
8
9
<html>
 <head>
     <title>{TITRE}</titre>
 </head>
 <body>
     <h1>{TITRE}<h1>
 
 
// avec le code qui va avec dans le php pour créer le template
ou

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function header($titre)
{
  ?>
         <html>
          <head>
              <title><?=$titre?></title>
          </head>
          <body>
              <h1><?=$titre?>/h1>
 
  <?
}
 
//avec un simple appel de la fct avec arguments
Je suis d'accord, la dernière méthode est bcp moins élégant qu'un système de templates mais niveau rapidité et performances, c'est quoi le plus rapide?
Tuxxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2004, 20h25   #59
totofweb
Nouveau Membre du Club
 
Inscription : juillet 2003
Messages : 47
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 47
Points : 27
Points : 27
Envoyer un message via MSN à totofweb
Niveau performances, une fonction est beaucoup plus rapide, mais l'intérêt d'un système de templates, c'est que cela propose des fonctions beaucoup plus avancées que de simplement écrire $titre.

Totofweb
totofweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2004, 23h05   #60
Tuxxy
Nouveau Membre du Club
 
Inscription : janvier 2003
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 44
Points : 38
Points : 38
Ben lesquelles justement?
Tuxxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h05.


 
 
 
 
Partenaires

Hébergement Web