|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Bonjour,
Je programme depuis un moment en php+xhtml1.0 strict+css+MySQL. J'aimerais séparer le PHP de mon code xhtml, pour plus de lisibilité (surtout pour des gros sites comme ceux de e-commerce). J'utiliserais toujours MySQL pour tout ce qui est gestion des données (membres, commandes, etc). J'utilise aussi un petit peu le XML pour les flus RSS. Je me suis d'abord penché sur les moteurs de templates (entre autres Litetemplate), puis j'ai découvert XSLT, qui pourrait visiblement aussi faire l'affaire. Sachant que je compte en profiter pour passer à php5 (pour coder en objet, et lire plus facilement les fichiers XML grace à simplexml pour mes flux RSS), que me conseilleriez-vous pour générer mes templates? J'ai lu quelque part (sur ce forum il me semble) que XSLT avait comme défaut d'être lent. Est-il vraiment plus lent qu'un moteur de templates simple? En termes d'utilisation, lequel est le plus pratique? Lequel a le plus d'avenir? Enfin, l'un des deux ne poserait-il pas problème pour son utilisation avec php5? Merci d'avance pour vos réponses |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
Citation:
XSLT est effectivement plus consommateur de ressources qu'une solution PHP à base de templates, mais dispose d'un atout crucial : la transformation peut être déportée sur le poste client, et donc décharger complètement le serveur du rendu HTML ou autre. XSLT est puissant, mais d'un apprentissage assez difficile, tant il est éloigné de la programmation telle qu'on la pratique avec PHP (XSLT est souvent considéré comme proche des langages déclaratifs et fonctionnels). L'approche XSLT impose un niveau d'abstraction supplémentaire : au lieu d'envoyer directement les variables PHP au moteur de templates avec un système de templates classique, il faut passer par une sérialisation XML pour servir de source de données à XSLT. A noter que pour cette sérialisation on peut se passer complètement de SimpleXML ou DOM, et utiliser des templates pour le faire (Smarty fait ça très bien). Enfin, PHP 5 est de loin la meilleure version de PHP pour travailler avec XSLT. libxml2 et libxslt sont des librairies stables et performantes, et les soucis rencontrés avec Sablotron sous PHP 4 ne sont plus qu'un mauvais souvenir.
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
J'ai continué à me documenter, et il semblerait qu'au final, une solution à base de template ne se justifie pas : en effet, les moteurs de templates sont écrits en php... Donc au final, lorsque tu insères des variables dans ton template, c'est un peu comme si tu utilisais <?php echo "$variable"; ?> en termes de performances (sauf que c'est plus long, due à la lourdeur du moteur)... Je peux me tromper hein, c'est juste ce que j'au lu et compris. En gros, on utilise php pour séparer le fichier template et les fonctions php... Ce qui est un non-sens :p
Toujours d'après ce que j'ai compris, il est plus intéressant de simplement créer des objets php avec les fonctions que tu utilises dans des fichiers php (des genres de librairies), puis d'inclure ces librairies dans les pages du site, et d'appeler les fonctions quand nécessaires. Ainsi, on rend le code html bien plus lisible, on peux facilement retoucher les fonctions sans avoir à retoucher à toutes les pages du site, et on ne passe pas par un moteur, qui forcément alourdit le traitement avant l'affichage des pages. Pour ce qui est de xslt, c'est vrai que ce que tu m'as dit me fait peut : en effet, mon but est avant tout de rendre mon code plus clair et donc plus facilement maintenable, pour au final gagner du temps (lors des maintenance, ou des chasses au bugs :p ). Si c'est pour devoir passer par un moteur de template pour envoyer mes données php à un fichier xml, pour ensuite que ces données soient exploitables par xslt, qui va convertir le tout en html, ça me fait sacrément penser à une usine à gaz N'hésite pas à me corriger si j'ai fait une erreur logique, ou si j'ai mal compris quelque chose, mais d'après ce que j'ai compris, l'utilisation d'un moteur de template ou même de xslt n'est pas justifiée pour l'utilisation que j'en ferais. Merci en tous cas à toi pour tes informations, elles m'ont permies de mieux comprendre comment utiliser xslt (c'est toujours intéressant d'apprendre |
|
|
00
|
|
|
#4 | |
|
Invité régulier
![]() Martin RichardInscription : juin 2004 Messages : 5 ![]() |
En premier, désolé pour cet up, mais ce topic était court et contenait déjà pas mal de choses qu'on aurait dit dans un nouveau topic...
*** Je me pose aussi cette question, et j'ai d'autres points qui peuvent faire pencher la balance. En ce qui me concerne, le but est de développer une sorte de framework maison dont la principale règle du cahier des charges et : "extensible, le plus possible". Donc, j'ai envie d'ajouter que XSLT à l'avantage de permettre de générer à la sortie plusieurs formats (XHTML/PDF/autres normes issues de XML/Texte simple/...), sans avoir à retoucher à mon noyau php gérant la vue. De plus, XSLT est quand même une technologie qui semble avoir un bel avenir. Mais ce qui m'inquiète le plus c'est la prise en main, je ne me fais pas de soucis pour moi, mais sachant que le but de ce framework est de pouvoir être distribué, il ne faut pas qu'il rebute tous les utilisateurs potentiels. Enfin, j'ai peur que sans fixer de DTD, les arbres XML que je ne pourrais gérer deviennent du n'importe quoi, mais d'autre part, encore une fois, un utilisateur peut être gêné par la contrainte de devoir concevoir sa propre DTD en développant un outil à partir de ce framework. Citation:
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : août 2005 Messages : 171 ![]() |
Cette fois ci c'est moi qui remonte le topic d'outre-terre
Citation:
L'intérêt des fonctions est justement qu'elle sont réutilisables, mais aussi qu'elles ne sont pas modifiable directement dans mon fichier HTML. Il n'y a donc aucune requête pour le DBB visible, et il est impossible à une personne éditant le fichier HTML de bidouiller mes fonctions Par contre, il est vrai que j'hésite encore beaucoup à séparer le traitement de la présentation, pour ce qui est de mes objets. En effet, séparer les deux par exemple pour a livre d'or ne me semble pas très intéressant : je doute qu'un livre d'or, tout comme un système de news par exemple puisse avoir 36 designs différents, en termes de balise HTML. Et avec le CSS, on peux facilement changer son apparence, sans avoir à toucher à mon objet :p Pour finir, en effet, je bosse seul, et je cherche surtout des solutions qui me fassent gagner du temps, aussi bien en développement qu'en maintenance. C'est pour cela que le PHP5 et ses classes m'ont séduit :p N'hésitez pas à donner votre avis sur tout cela, c'est toujours très intéressant de comparer nos points de vues, pour corriger ses apprioris |
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mai 2007 Messages : 127 ![]() |
Et aujourd'hui c'est à mon tour de déterrer le topic :p
Avec les évolutions marquantes de php, on peux se demander si la librairie php pour le xslt vaut-elle plus le coup aujourd'hui ? D'ailleurs est-elle écrite en C ou php ? Enfin, pourquoi ne pas écrire un moteur de template en C que l'on ajouterai en tant que module php pour optimiser le traitement du template ? cela permettrait une plus grande performance ? (et tant qu'a faire, faire aussi un module php en c pour l'orm et hop :p) Vu que le topic à démarré en -200 avant JC, un retour d'expérience des différents protagonistes sur ce qu'ils ont finis par utiliser serait super intéressant ! Alors ? qu'utilisez-vous maintenant ? |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Pour les gros sites, il est maintenant conseillé d'utiliser une architecture MVC qui est l'évolution des templates
tu peux par exemple regarder ce tutoriel pour plus d'explications sur MVC : http://julien-pauli.developpez.com/t...vc-controleur/ tu peux aussi utiliser un framework récent qui utilise MVC comme Zend Framework par exemple : http://g-rossolini.developpez.com/tu...roduction#LI-B
__________________
Modérateur PHP |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : mai 2007 Messages : 127 ![]() |
Le problème de Zend, comme d'autres frameworks (mega-frameworks), c'est qu'ils sont plutôt lent à l'éxécution.
C'est ce que Rasmus Lerdorf a dit récement :/ Donc que faire ?? :p |
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
c'est normal, en général le code objet est plus lent que le code procédurale mais quand on réalise un gros projet il faut d'abord se concentrer sur la maintenance du code et l'optimisation devrait se faire tout à la fin après avoir été testé en conditions réelles
en plus en ce moment les processeurs sont de plus en plus puissant donc la plupart du temps il n'y a plus besoin de faire d'optimisation importante
__________________
Modérateur PHP |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com