Template ou XSLT

Template ou XSLT - PHP - Programmation

Marsh Posté le 30-07-2004 à 16:48:21    

Salut,
 
j'ai un dilemne ;)
 
J'ai plusieur projets de site en cours. J'utilise PHP5 pour chacun et je voudrais adopter un style de programmation le plus propre et le plus efficace possible.
 
Par exemple, j'esseye d'utiliser au maximum la POO et un style "MVC".
 
Ma classe 'vue' me pose problème.
 
J'hésite en effet entre l'utilisation de template (phplib, phpbb ou autre)et l'utilisation de XSLT.
 
Dans toute l'application, les données sont d'abord transférée dans un fichier xml (que l'utilisateur peut enregistrer 'brut' s'il le veut).
 
Donc soit : j'applique une transformation XSLT au fichier xml , soit la classe template remplace dans le template en fonction du fichier xml.
 
Je me dis que la méthode xslt est plus 'standart', plus puissante et tout et tout...
 
qu'en pensez vous ?

Reply

Marsh Posté le 30-07-2004 à 16:48:21   

Reply

Marsh Posté le 30-07-2004 à 16:56:37    

Je prefere xsl, car c'est independant du langage que tu utilises, et ca permettrait a un utilisateur qui telecharge le xml des données de pouvoir les voir en clair sans avoir recours au templates php.
 
edit: c'est un avis qui n'engage que moi ;)


Message édité par alien_nan le 30-07-2004 à 16:56:59
Reply

Marsh Posté le 30-07-2004 à 17:00:08    

c'est ce que je me dis...
 
en plus ça permet de mieux comprendre le code qu'on utilise (personelement les classes templates ça me parait assez confu meme si j'ai compris la logique globale...)
 
d'autres avis ?

Reply

Marsh Posté le 30-07-2004 à 20:20:17    

Si tu as déjà tes données en xml, autant utiliser XLST que de repartir à zéro, non ?

Reply

Marsh Posté le 30-07-2004 à 20:26:27    

oui
 
donc la solution XSLT est bien la meilleure :)

Reply

Marsh Posté le 30-07-2004 à 20:44:52    

a mon avis le XML devient interessant lorsque tu as des infos à dispatcher sur plusieurs site.
Prend exemple sur ce qui ce fait notamment les fils de news en RSS.
 
Je doute aussi de la rapidité ..

Reply

Marsh Posté le 30-07-2004 à 20:48:52    

Citation :

Je doute aussi de la rapidité ..


 
c'est effectivement mon inquiétude....
 
seulement en considérant que les templates sont fait des regex multiples... et que l'api dom est par contre implémentée 'en dur' dans php...
 
je me dis que c'est ptet pas si lent que ça ...

Reply

Marsh Posté le 30-07-2004 à 21:03:02    

bah si tu vx j suis egalement sur un projet de developpement en ce moment et j'utiliserais les templates de PHPLIB. Je programme aussi POO. Il serait interessant de faire des benchmarks sur une page HTML identique en local !
 
Tu en penses quoi ?

Reply

Marsh Posté le 30-07-2004 à 21:05:12    

tres bonne idée... :)
 
faut qu'on se mette d'accord sur une page et un ptit script php qui défini quelques variables.

Reply

Marsh Posté le 30-07-2004 à 21:17:58    

au fait j'ai pour l'instant un petit probleme ...
 
 <xsl:template match="formulaire/*/*[@type = 'string']">
 
 
ce que je voudrais c'est pouvoir récupérer le nom du noeud courant contenu cet attribut..
 

Code :
  1. <?xml version="1.0" encoding="iso-8859-1" ?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.    <xsl:template match="formulaire/*/*[@type = 'string']">
  4.       <h2>
  5.          <xsl:value-of select="@question" />
  6.       </h2>
  7.       <xsl:element name="input">
  8.         <xsl:attribute name="name">ici ça pose probleme...</xsl:attribute>
  9.          <xsl:attribute name="class">champ</xsl:attribute>
  10.        
  11.       </xsl:element>
  12.    </xsl:template>
  13. </xsl:stylesheet>


 
par exemple le xml :
 

Code :
  1. <duree question="Quelle est la durée" type="string"><![CDATA[]]></duree>


 
le template l'analyse vu qu'il contient un attribut type="string"
 
je voudrais récupérer le nom du noeud (duree) donc ....


Message édité par TriadPtale le 30-07-2004 à 21:18:18
Reply

Marsh Posté le 30-07-2004 à 21:17:58   

Reply

Marsh Posté le 30-07-2004 à 21:24:00    

j px pas t 'aider la dessus. J ve voir si Apache Bench est dispo sous Windows

Reply

Marsh Posté le 30-07-2004 à 21:31:09    

pas de bol. Apache bench n'existe apparemment pas sous Windows. Que faire ?

Reply

Marsh Posté le 30-07-2004 à 21:38:20    

j'ai un bouqin "php avancé" ou ils expliquent comment utiliser la classe pear benchmark en détail...
 
jvais aller voir :)

Reply

Marsh Posté le 30-07-2004 à 22:03:03    

impeccable, j'ai aussi cette librairie PEAR. Donc le test est faisable des deux cotés.
 
Pour le test j'ai pensé à faire 3 variables : une chaine, un tableau et une grande chaine. Pas de SQL.
 
Donc je posterais ici une page HTML , le code PHP et ensuite j'irais voir la PEAR ..
 
 

Reply

Marsh Posté le 30-07-2004 à 22:11:00    

Code :
  1. <html><head><title></title></head>
  2. <!-- BEGIN Blocklevel1 -->
  3. <body>
  4. <p> {TEXTECOURT} </p>
  5. <table>
  6.   <!-- BEGIN contentBlock -->
  7. <tr><td> {KEY} </td><td> = {VALUE}</td></tr>
  8.   <!-- END contentBlock -->
  9. </table>
  10. <p> {TEXTELONG} </p>
  11. </body>
  12. <!-- END BlockLevel1 -->
  13. </html>

Reply

Marsh Posté le 30-07-2004 à 22:13:02    

Je suis pas specialiste des benchmark de site Web, mais cette page simple peut surement convenir à la comparaison XSLT & XML à PHPLIB.
 
A toi de faire la conversion :D

Reply

Marsh Posté le 30-07-2004 à 22:38:42    

Code :
  1. $textecourt = "Informatique";
  2. for ($i = 0 ; $i < 10 ; $i ++)
  3. {
  4.     $textecourt .= $textecourt;
  5. }
  6. $textelong = $textecourt;
  7. $a = array('1' => 'un', '2' => 'deux', '3' => 'trois');


 
Voici les trois variables. Donc le test est pret...


Message édité par joelan le 30-07-2004 à 22:42:13
Reply

Marsh Posté le 30-07-2004 à 23:31:48    

parfais,
 
je regarderai demain pour la classe de benchmark :)
 
et je mettrai le code php que je vais utiliser pour transformer avec xslt..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed