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 05/10/2004, 17h11   #101
fabszn
Membre Expert
 
Avatar de fabszn
 
Homme Fabrice Sznajderman
Développeur Java
Inscription : mars 2002
Messages : 974
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Sznajderman
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2002
Messages : 974
Points : 1 676
Points : 1 676
Tout d'abord merci pour ta réponse naholyr
Elle me donne un bon apercu des templates..

Je comprend mieux à quoi cela sert!

Est ce que tu pourrais rentrer dans les détails techniques..
C'est a dire :

Est ce que le moteur de template utilise un fichier de config pour faire le mapping entre le modèle et les données?
Quand tu parles de pseudo-language, cela correspond à un language mis en place entre le développeur et le designer.

Plus précisément , se sont les variables que le designer devra placer dans le modele et que le développeur devra initialiser correctement ....


Je reprend ton exemple :
Code :
1
2
3
4
5
6
7
8
9
 
 
<html> 
... 
<body> 
<h1>ICI MON TITRE</h1> 
<p>ICI MON TEXTE</p> 
</body> 
</html>
ICI MON TITRE et ICI MON TEXTE sont deux variables (issue du pseudo-language) et qui sont reconnues par le moteur de template. Lorsque le moteur de template rencontre ces deux variables, il sait retrouver la bonne variable correctement initialisée par le développeur et fait le mapping dans la page à destination du browser

Aussi en tout en écrivant je me rend compte que c'est comme cela que sont traité les smileys?

Est ce que je fais fausse route dans mon raisonnement?

Merci d'avance,

@+

Fabszn
fabszn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 09h27   #102
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Citation:
Envoyé par fabszn
Est ce que le moteur de template utilise un fichier de config pour faire le mapping entre le modèle et les données?
En général non, il a juste besoin du fichier modèle, et de méthodes pour injecter les bonnes valeurs dans ce fichier. Mais tout dépend de comment a été développé ce moteur.

Citation:
Quand tu parles de pseudo-language, cela correspond à un language mis en place entre le développeur et le designer.
Il est généralement imposé par le moteur. En général c'est {nom} pour les variables, et des trucs genre <!-- BEGIN: nom --> ... <!-- END: nom --> (ou {block:nom}...{end:block} chez Temphplate) pour les blocs (les blocs permettent de répéter des zones du modèle).

Citation:
Plus précisément , se sont les variables que le designer devra placer dans le modele et que le développeur devra initialiser correctement ....
[...]
ICI MON TITRE et ICI MON TEXTE sont deux variables (issue du pseudo-language) et qui sont reconnues par le moteur de template. Lorsque le moteur de template rencontre ces deux variables, il sait retrouver la bonne variable correctement initialisée par le développeur et fait le mapping dans la page à destination du browser

Aussi en tout en écrivant je me rend compte que c'est comme cela que sont traité les smileys?
Tu as tout compris
Basiquement, c'est du str_replace (avec quelques éléments en plus).
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 09h47   #103
fabszn
Membre Expert
 
Avatar de fabszn
 
Homme Fabrice Sznajderman
Développeur Java
Inscription : mars 2002
Messages : 974
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Sznajderman
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2002
Messages : 974
Points : 1 676
Points : 1 676
Bonjour,

Merci pour ton aide!

Je suis en train de faire mon site web,

Je vais essayé d'utiliser des Templates pour mettre en pratique...

@+

Fabszn

un javaiste se mettant au PHP...
fabszn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2004, 12h05   #104
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Pour revenir à mon précédent commentaire, concernant la complexité inutile de certains moteurs, voici un article (l'auteur a l'air paradoxalement d'apprécier smarty, alors qu'au final il le démontre inutile) très intéressant: http://www.massassi.com/php/articles/template_engines/

Si on veut le moteur de templates le plus rapide du moment, il n'y a pas à rechigner, c'est php

Citation:
Syntaxe du modèle:

Insertion d'une variables <?=$variable?>

Bloc: <?php foreach ($variables as $variable): ?> ... <?php endforeach; ?>
Ou: <?php foreach ($variables as $variable) { ?> ... <?php } ?>

Conditions: <?php if (condition): ?> ... <?php endif; ?>
Ou: <?php if (condition) { ?> ... <?php } ?>

etc...
La syntaxe n'est finalement pas plus complexe que celle de la plupart des moteurs de templates, un peu plus lourde c'est vrai, mais comme le dit l'auteur:
Citation:
In fact, PHP code is just as simple (if not more so) as the syntax of the more advanced template engines (such as Smarty). Also, you can use PHP short-hand like this: <?=$var;?>. Honestly, is that any more complex than {$var}? Sure, it's a few characters shorter, but if you can get used to it, you get all the power of PHP without all the overhead of parsing a template file.
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2004, 13h54   #105
fabszn
Membre Expert
 
Avatar de fabszn
 
Homme Fabrice Sznajderman
Développeur Java
Inscription : mars 2002
Messages : 974
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Sznajderman
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2002
Messages : 974
Points : 1 676
Points : 1 676
Merci pour cet article!!

@+

fabszn

un javaiste se mettant au PHP....
fabszn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2004, 18h19   #106
Bloodshed
Futur Membre du Club
 
Inscription : février 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 15
Points : 15
Points : 15
Envoyer un message via ICQ à Bloodshed Envoyer un message via AIM à Bloodshed Envoyer un message via MSN à Bloodshed Envoyer un message via Yahoo à Bloodshed
salut naholyr,

pourrais-tu me donner plus dinfos sur le moteur de template de PHP
Citation:
Si on veut le moteur de templates le plus rapide du moment, il n'y a pas à rechigner, c'est php Wink
Ca m'intéresse, si tu as des liens de préférence en français mais aussi en anglais sinon
Bloodshed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2004, 09h11   #107
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
PHP est un moteur de templates à la base, c'est tout. Il s'intégre dans le modèle HTML avec les balises <? ... ?>, possède l'insertion de variables, les structures de blocs, les conditionnelles, et d'autres trucs bien plus avancés.

Le lien ci-dessus explique tout ça. Et c'est vrai que quand on y refléchit un peu, il n'y a pas besoin d'un gros moteur de templates pour avoir la séparation des logiques, et il ne faut pas confondre "séparer la logique de présentation de la logique métier" et "séparer le code PHP du code HTML".

Avec quelques règles simples (on fait toujours une convention de codage dans les projets, ce n'est rien de plus), on peut arriver à des résultats:
- aussi propres et faciles à maintenir qu'en utilisant les templates.
- aussi rapide que sans l'utilisation d'une surcouche à php.
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2004, 15h37   #108
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Citation:
Envoyé par loufoque
disposer les éléments de l'interface.
ça fait un peu partie de la présentation ça quand-même
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2004, 18h37   #109
Bloodshed
Futur Membre du Club
 
Inscription : février 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 15
Points : 15
Points : 15
Envoyer un message via ICQ à Bloodshed Envoyer un message via AIM à Bloodshed Envoyer un message via MSN à Bloodshed Envoyer un message via Yahoo à Bloodshed
merci pour ces infos

mais si le moteur de modèle de PHP est si simple et si puissant (je veux bien le croire) pkoi n'est-il pas reconnu ? Il gagnerait sûremment à être médiatisé, mais dans tel cas, quel est donc l'intérêt des solutions template alors?
Bloodshed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2004, 09h22   #110
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Personne n'a dit que PHP avait un moteur de modèles integrés, l'auteur rappelle simplement que PHP EST un moteur de modèle lui-même. Ce qu'il pointe du doigt très efficacement d'ailleurs.

Pourquoi utilise-t-on des moteurs de templates ?
- Parce que sous Perl (et Python si on ne l'utilise pas avec Zope) ce sont des passages obligés si on veut un code propre, car ils ne s'intègrent pas du tout au code HTML. On doit forcément passer par des print. Là les templates sont vitales.
- Parce qu'on aime bien développer des trucs gros et lourds.
- Parce que {var} c'est plus rapide que <?=$var;?>, et que ça peut faire la différence. Encore que la plupart des designers bossant sous dreamweaver, il intègre très bien du php (toutes petites portions de code) dans les pages. Il suffirait de s'entendre sur les noms de variables (ce qu'on doit faire avec les autres systèmes) et leur structure (ce qu'on doit faire avec "la plupart" des autres systèmes, ce que je regrette).
- Parce que ça permet d'ajouter des "commandes", des instructions plus automatisées. Par exemple le mode "page par page" en quelques instructions chez TinyButStrong (dommage qu'il n'y ait pas l'intégration automatique du "LIMIT n,p") ou les "balises amies", etc...

Il n'y a pas que du mauvais, mais il faut bien avouer que si on a:
- un modèle créé par un designer, avec des bouts de php (foreach, while, fonctions prédéfinies, if, etc...).
- un script de traitement des données.
Le développeur saura créer la couche de fusion données/présentation en changeant simplement les noms de variables pour qu'ils correspondent à ceux du modèle, ce qui n'est finalement que l'objectif du moteur proposé par l'auteur sus-cité.

Mais je le répète, on voit bien dans le dernier point (celui des instructions automatisées) que certains moteurs tirent leur épingle du jeu en proposant des structures et un façonnage des modèles que PHP ne peut pas proposer. Là il y a un vrai intérêt.
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2004, 12h48   #111
Bloodshed
Futur Membre du Club
 
Inscription : février 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 15
Points : 15
Points : 15
Envoyer un message via ICQ à Bloodshed Envoyer un message via AIM à Bloodshed Envoyer un message via MSN à Bloodshed Envoyer un message via Yahoo à Bloodshed
Citation:
Personne n'a dit que PHP avait un moteur de modèles integrés
Non c'est pas ce que j'ai voulu dire j'ai du mal m'exprimé. j'ai bien compris que PHP avait les moyens d'être un moteur de modèle

Il est vrai que l'on aime bien faire des trucs bourré d'inutilité et super lourd
Bloodshed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2004, 18h45   #112
pascaltje
Invité régulier
 
Inscription : mai 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 5
Points : 6
Points : 6
ça y est, presque un mois que j'utilise le template de phplib. et ça simplifie le code:
- fichiers modeles *.tpl en html
- PHP qui va chercher les infos
- PHP qui remplace les infos

ce qui manque à mon avis, c'est des outils pour le remplacement des infos.
je m'en suis rendu compte pour un formulaire:
25 champs ( d'où 25 {valeurs_par_defauts}) + 15~20 messages d'erreur possibles ( d'ou 15~20 {message_d_erreur} )

faire le code sur un exemplede deux lignes, facile; sur 40~50 {variables} à remplacer, un peu plus galère: on risque d'en oublier, et faire 50 copier/coller, c'est pas une vie.

j'ai fait un petit script qui renvoie grosso modo les variables et les boucles d'un fichier mais je trouve pas ça suffisant...

y a-t-il des outils facilitant le parsing des fichiers par le codeur?

A+

Pascal
pascaltje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2004, 02h14   #113
phpnux
Invité de passage
 
Inscription : novembre 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 3
Points : 3
Points : 3
Et bien moi j'ai assez vite laché le PHPLIB pour un bon petit Smarty.
Pourquoi ?

Je me suis rendu compte que les possibilités de PHPLIB étaient assez vite dépassées si on veux faire du 100% dynamique.. j'ai regretté mon choix assez vite.

Avec Smarty j'aime bien la possibilité d'intégrer du code logique dans l'html via les if / else.

Et les designers avec qui il m'arrive de bosser se prêtent au jeux de créer des fonctions logiques dans leurs templates alors :-)

Voilà mon avis.
Mickael.
phpnux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2004, 09h36   #114
Kioob
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
C'est justement ce que je déteste dans Smarty : tu débarques finalement avec un autre langage, presque aussi complexe que PHP... et tu y mets des tonnes de fonctions, conditions, etc etc.
Au final le soit disant "template" est aussi compliqué qu'un code PHP bien crade.

Il s'agit évidement de cas extrème, on peut faire des trucs propres avec Smarty... tout comme on peut très bien séparer la présentation directement avec PHP, sans avoir recourt à une uzine à gaz.
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2004, 09h47   #115
Bloodshed
Futur Membre du Club
 
Inscription : février 2004
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 15
Points : 15
Points : 15
Envoyer un message via ICQ à Bloodshed Envoyer un message via AIM à Bloodshed Envoyer un message via MSN à Bloodshed Envoyer un message via Yahoo à Bloodshed
Citation:
presque aussi complexe que PHP
La syntaxe seulement

phpnux : Que de point commun que nous avons ! Moi aussi j'aime PHP et Linux et je m'appelle Mickaël (lol)
Bloodshed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2004, 11h27   #116
phpnux
Invité de passage
 
Inscription : novembre 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 3
Points : 3
Points : 3
Citation:
Envoyé par Kioob
C'est justement ce que je déteste dans Smarty : tu débarques finalement avec un autre langage, presque aussi complexe que PHP... et tu y mets des tonnes de fonctions, conditions, etc etc.
Au final le soit disant "template" est aussi compliqué qu'un code PHP bien crade.

Il s'agit évidement de cas extrème, on peut faire des trucs propres avec Smarty... tout comme on peut très bien séparer la présentation directement avec PHP, sans avoir recourt à une uzine à gaz.
Oui, je suis d'accord avec toi, faut juste savoir se limiter avec les fonctions de smarty et les utiliser un minimum


Bloodshed : ;-)
phpnux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2004, 19h59   #117
SuperPat
Futur Membre du Club
 
Étudiant
Inscription : août 2004
Messages : 74
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2004
Messages : 74
Points : 19
Points : 19
Bonjour,

moi, j'utilise mon moteur perso que vient de terminer, il marche parfaittement.


Il gère:

- Les blocks imbriqués
- les conditions IF ; ELSE ; ELSEIF ; ENDIF
- L'inclusion, d'autres fichiers dans une page


je le metterai sur mon site plus tard avec un license GPL
SuperPat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2004, 09h27   #118
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Citation:
Envoyé par SuperPat
Bonjour,

moi, j'utilise mon moteur perso que vient de terminer, il marche parfaittement.


Il gère:

- Les blocks imbriqués
- les conditions IF ; ELSE ; ELSEIF ; ENDIF
- L'inclusion, d'autres fichiers dans une page


je le metterai sur mon site plus tard avec un license GPL
Un conseil: arrête là le développement, contente-toi du débuggage. Personnellement avec Temphplate je me retrouve aujourd'hui avec une grosse uzinagaz très loin de l'objectif premier :'(
naholyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2004, 17h58   #119
kerzut
Invité régulier
 
Inscription : avril 2003
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 12
Points : 8
Points : 8
Par défaut template VS xml

bonjour,

certains (anciens) posts demandaient pourquoi utiliser les templates plutôt que xml+xslt? Donc je profite de ce thread pour reposer cette question?
Alors des avis?
merci
kerzut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2004, 09h29   #120
naholyr
Membre régulier
 
Inscription : décembre 2002
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 89
Points : 94
Points : 94
Parce que xml+xslt c'est une syntaxe plus complexe, donc moins lisible, donc inutilisable pour les graphistes qui n'ont pas forcément un diplome de traducteur universel ni même de formation de développeur.
Parce qu'il n'y a pas d'éditeurs wysiwyg (genre dreamweaver, imageready, etc...) qui permettent de sortir du xslt.
Parce qu'il y a encore peu d'hébergeurs qui proposent un sablotron (ou autre) coté serveur, et trop peu de clients qui en disposent.

En gros, tout simplement parce que c'est beaucoup trop éloigné du cycle de production habituel, et que changer sa façon de travailler n'est valable que si le gain est vraiment sensible, ce qui n'est pas le cas quand on compare xml+xslt par rapport à data(sql,xml,etc...)+templates. Le point le plus noir selon moi étant la syntaxe des xslt qui en font un truc aussi lisible que du perl, et on connait les possibilités de maintenance d'un programme perl "basique" (c'est quasiment impossible à relire).
naholyr 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 08h12.


 
 
 
 
Partenaires

Hébergement Web