IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Smarty] Fonctionnement et lien avec XML/XSL


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut [Smarty] 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    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.

  3. #3
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    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

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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).

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    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.

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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/

  7. #7
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    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.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    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.

  9. #9
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    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.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lien avec XML en Post via un formulaire
    Par epeichette dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2009, 22h32
  2. tableau avec xml xsl
    Par bsquare09 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 12/02/2009, 11h42
  3. Projet : Mise en place d'une solution avec XML/XSL
    Par kokogil dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 25/06/2008, 08h59
  4. [XML][XSL][FOP] transformation xml avec fop
    Par Le Marlou dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 05/12/2003, 16h58
  5. Tree View avec XML et XSL
    Par Drooxy dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/04/2003, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo