Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2006, 21h44   #1
Invité régulier
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 6
Points : 6
Par défaut Fonctionnement et lien avec XML/XSL

Bonjour,


J'ai l'intention de me lancer dans le développement d'un CMS en utilisant les technologies PHP/MySQL. Pour cela, j'ai parcouru de nombreux sites web et lu autant d'articles pour en conclure que l'utilisation d'un système de template est fortement interessant dans ce genre de projet. Se pose alors la question : "Lequel choisir ?". Je trouves que le XML allié au XSL est un bon choix (en plus d'être une technologie de + en + utilisée).. mais pour des pages statiques ! En est-il autant pour des pages dynamiques ?


Imaginons un module pour les news. Il y a évidemment la page de base, qui va afficher les news disponible. Voici le processus de A à Z pour arriver à cette page :

[ prérequis : un schéma XML ]
1. le script php récupère les données nécessaires
2. le script php construit un fichier XML, qui utilise les données, sur base du schéma XML établit dans les prérequis
3. grâce à un parser (XSLT, DOM, etc.), on passe du fichier XML à un fichier HTML via un modèle XSL donné
4. on a fini
--> Cela vous semble-t-il correct comme processus ?

Mais il y a aussi la page qui contient un formulaire permettant d'ajouter/éditer une news. Faut-il utiliser le couple XML/XSL pour obtenir une page contenant un formulaire, ou peut-on coder en dur ("pur HTML") ce formulaire ? Ca me gêne de le coder en dur, dans le sens où j'aurais voulu adopter la même voix de programmation pour l'entiereté du CMS.. (je voudrais vraiment perfectionner le développement de ce dernier).


Enfin, peut-on suivre un layout comme défini ci-dessous de la manière décrite ci-dessus ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
+------------------------------------+
|             header.php             |
+------------------------------------+
|              menu.php              |
+----------+-------------------------+
|          |                         |
| menu.php |       content.php       |
|          |                         |
|          |                         |
:          :                         :
:          :                         :
|          |                         |
+----------+-------------------------+
C'est vraiment un problème de conception que j'énonce ici. Je voudrais réellement savoir si le choix des technologies choisies ici est correct ou non. Dans ce cas, que me conseillez-vous ?

Merci d'avance pour vos avis, conseils, et éléments de réponses !
skrenit0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 21h43   #2
Invité régulier
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 6
Points : 6
Bonsoir,

Ayant lu et relu le thread sur les systèmes template dans le forum PHP, j'ai fais un choix (que j'espères bon) pour le couple XML/XSL.
Seulement, il existe très peu de documentation (ou alors introuvable) concernant le moyen de passage de données MySQL vers un fichier XML (d'ailleurs, est-ce la bonne façon de faire ?).
Je relances aussi ma question sur les formulaires : faut-il aussi réaliser une page contenant un formulaire en XML (par simple soucis de perfection/homogénéité) ?

D'autre part, on m'a dit que ce n'étais pas le meilleur système template. Pourtant, c'est le top de la norme.. Si quelqu'un a un avis, ou des orientations vers d'autres systèmes, je suis preneur !

Merci d'avance.
skrenit0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 08h57   #3
Membre confirmé
 
Avatar de Julien.alkaza
 
Inscription : octobre 2004
Messages : 240
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : octobre 2004
Messages : 240
Points : 240
Points : 240
Envoyer un message via MSN à Julien.alkaza
Je ne pense pas qu'associer "top de la norme" et "meilleure solution pour toi" soit une bonne affaire...
Je n'y connais rien en Template, c'est plus une remarque générale...

Mais avant de choisir une Ferrari, il faut penser à ce qu'on va en faire...Si c'est pour de la ville, ca sert à rien.....

As tu pensé aux Smarty? (moi je dis ca, je dis rien...Hein??)
__________________
Admin Réseaux & Systèmes.

Red Hat Certified Technician...#604006101698235
Julien.alkaza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 09h21   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Un moteur de gabarits te permet de t'abstraire de la couche présentation. Tu envoies tes données à ton gabarit : peu importe à PHP que ce soit du HTML ou du XML. En gérant bien, tu peux même laisser l'option à ton utilisateur !

Pendant que tu y es, pense à utiliser un layer d'abstraction de bases de données (je vois que cela n'appartaît pas dans ton processus de A à Z).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 10h32   #5
Invité régulier
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 6
Points : 6
Tout d'abord, merci pour vos réponses.

Voici d'abord une source qui va soutenir ce qui suit :
http://www.atelierphp5.com/un-system...rits-xslt.html

Pour ce qui est de Smarty, je m'étais déjà informé auprès du site officiel, j'ai parcouru des exemples. Le problème, qui est cité dans le lien ci-dessus, est qu'il implique (selon les situations, bien entendu) d'utiliser des conditions et des boucles (= blocs) à la Smarty. Je suis tout à fait la logique expliquée dans cet article : autant oublier les templates et continuer à coder en PHP/HTML dans un même fichier.

Yogui, quand tu parles de moteur de gabarits, tu parles bien d'un système de template, me trompes-je ? C'est justement ce que je veux mettre en place. Pourrais-tu préciser ce que tu voulais dire par là ? J'ai surement omis quelque chose.

Ensuite, pour ce qui est du layer d'abstraction, je comprends bien ce que cela signifie, et l'intérêt que ça offre. Ca serait l'équivalent des étapes 1 et 2 de mon processus A à Z. Mais comment le mettre en place ? Y a-t-il déjà des librairies en PHP effectuant cette tâche ?

Pour finir, je voudrais expliquer brièvement pourquoi mon choix du XML/XSL. C'est aux normes, et même si XSL n'est pas des plus limpides au début, je ne rechignes pas à m'arracher les cheveux (même en ayant une calvitie précoce). De plus, c'est le seul (bien que je ne les connais pas tous) des systèmes template qui n'implique pas l'utilisation de nouvelles conditions/boucles/etc.

En espérant que vous pourrez m'éclairer sur ces quelques points. Merci d'avance.
skrenit0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 11h33   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Je ne comprends pas pourquoi tu parles de XML/XSL comme d'un moteur de templates (moteur/système de templates/gabarits). Je le vois simplement comme une méthode pour structurer et présenter un document : cela ne fait pas un moteur.
Ton article n'explique malheureusement rien et le lien qui pourrait s'en charger est mort :/

Si tu pouvais m'expliquer le coup des templates en XML, ça m'intéresse ^^

Cela dit, ne crois pas ce que dit Rasmus. Le pauvre vieux est dépassé
Les templates permettent une séparation des couches, permettent de ne donner que du code client (HTML et consorts) aux designers, éventuellement de gérer du cache côté serveur, etc.
De même, l'abstraction de la BDD permet de gérer le cache, d'optimiser tout ça, de déléguer correctement.

Il s'agit de déléguer les tâches aux acteurs les mieux indiqués pour s'en charger.

Si tu peux attendre quelques jours, j'ai finalisé un article sur les classes d'abstraction. Il sera bientôt publié et tu auras alors un exemple de layer d'abstraction de la BDD, ainsi qu'un exemple d'utilisation de template (et + encore).

[Edit] L'annonce est prévue, je peux donc donner le lien :
http://g-rossolini.developpez.com/tu...ite-dynamique/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 14h45   #7
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
Effectivement on peut considérer le couple XML/XSLT comme un moteur de template. En effet on génère le XML en PHP puis on transforme en HTML grace a XSLT.
Mais ca n'est pas plus souple, puisqu'en définitive, même si tu n'as pas fait de parcours de données en XML, tu l'auras fait en php.
L'utilisation de Smarty a de nombreux avantages, entre autre celui de gère un système de cache performant.
Quand tu parles de normes d'ailleurs, où as tu lu/vu que XML/XSLT était la norme en matière de système de template ? La plupart des CMS que je connais utilisent Smarty ou un équivalent si je ne m'abuse.
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2006, 19h42   #8
Invité régulier
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 6
Points : 6
Yogui, merci pour l'article !! Il me sera surement d'une grande aide. Je n'ai parcouru que la table des matières, mais ça me semble tout indiquer pour ma petite personne. Je vais revoir un peu ma manière de penser mon site web dynamique.

Citation:
Envoyé par hugo123
Quand tu parles de normes d'ailleurs, où as tu lu/vu que XML/XSLT était la norme en matière de système de template ? La plupart des CMS que je connais utilisent Smarty ou un équivalent si je ne m'abuse.
Soit je me suis mal fais comprendre, soit tu as mal lu mes propos.. Je penches plus pour le 2ème cas
Je n'ai pas dis que XML/XSL était la norme en matière de système de template. J'ai juste dis que c'est un langage standardisé par le W3C, une norme bien définie.
skrenit0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 10h08   #9
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
XML/XSL fait partie de la norme W3C tout autant que XHTML, CSS etc...
Mais il faut veiller a ne pas confondre langage de présentation et système de template.
Enfin, le sujet est vaste, c'est en tatonnant que tu trouveras ce qui te convient le mieux.
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 10h30   #10
Invité régulier
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 6
Points : 6
Le fait est que j'ai pu constaté dans plusieurs conversations que certains utilisaient le couple XML/XSL pour en faire une sorte de template system. Du coup, j'ai focalisé - peut-être de trop.. - sur cette possibilité, et voulu entreprendre des recherches pour savoir comment mettre tout ça en oeuvre. Mais je vais prendre d'autres systèmes en considération, sans pour autant oublier ce couple..

EDIT:

Ton article est parfait. Je vais mettre tout ça en place et oublier, pour le moment, la solution XML/XSL..
Tu as raison Julien, une Porsche suffit amplement
skrenit0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web