[PHP] Generer le code html avec une classe

Generer le code html avec une classe [PHP] - PHP - Programmation

Marsh Posté le 26-09-2003 à 15:27:03    

Est ce que vous pensez que c'est une bonne idée de confier la generation de code HTML a une classe? Il serait possible de separer le code php du code html de cette façon. La presentation serait gerée grace a des feuilles de style.
 
En gros ce serait un truc dans ce genre :
 

Code :
  1. HtmlRenderer.class.php
  2. <?php
  3. class HtmlRenderer {
  4.     function htmlStart ($xmlns)
  5.     {
  6.         echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
  7.         echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
  8.         $string = "<html xmlns=\"".$xmlns."\">\n";
  9.         echo $string;
  10.     }
  11.     function htmlEnd ()
  12.     {
  13.         echo "</html>\n";
  14.     }
  15.     function headStart ()
  16.     {
  17.         $string = "<head>\n";
  18.         echo $string;
  19.     }
  20.     function headEnd ()
  21.     {
  22.         echo "</head>\n";
  23.     }
  24.     function bodyStart ()
  25.     {
  26.         echo "<body>\n";
  27.     }
  28.     function bodyEnd ()
  29.     {
  30.         echo "</body>\n";
  31.     }
  32.     function formStart ($class, $action, $method, $enctype)
  33.     {
  34.         $string = "<form class=\"".$class."\" action=\"".$action."\" method=\"".$method."\" enctype=\"".$enctype."\">\n";
  35.         echo $string;
  36.     }
  37.     function formEnd ()
  38.     {
  39.         echo "</form>\n";
  40.     }
  41. }
  42. ?>


 

Code :
  1. renderer.php
  2. <?php
  3. include_once ("HtmlRenderer.class.php" );
  4. $page = new HtmlRenderer;
  5. $page->htmlStart("http://www.w3.org/1999/xhtml" );
  6. $page->headStart();
  7. $page->headEnd();
  8. $page->bodyStart();
  9. $page->formStart("test", "toto.php", "POST" );
  10. $page->formEnd();
  11. $page->bodyEnd();
  12. $page->htmlEnd();
  13. ?>


 
Bon, c'est hyper basique comme exemple mais c'est juste pour comprendre le principe.

Reply

Marsh Posté le 26-09-2003 à 15:27:03   

Reply

Marsh Posté le 26-09-2003 à 16:22:15    

Ce serait pas le principe de n'importe quel outil de template ça :D

Reply

Marsh Posté le 26-09-2003 à 17:53:12    

Si. Certains adorent, d'autres trouvent que non. Perso, je trouve que sapu.


---------------
Le site de ma maman
Reply

Marsh Posté le 26-09-2003 à 18:34:23    

Citation :

Ce serait pas le principe de n'importe quel outil de template ça  


 
Non, pas du tout.
 

Citation :

Si. Certains adorent, d'autres trouvent que non. Perso, je trouve que sapu.


 
Nan nan.
 
Les templates c'est pas ça. Avec un systeme de templates t'as un fichier html avec des balises speciales (mais pas de PHP) et un fichier PHP. Le template est parsé et les balises sont remplacées par les valeurs qui vont bien.
 
La c'est juste une classe qui genere du html, y'a pas de template.
 
T'as deja essaye d'utiliser des templates Cherrytree au fait?

Reply

Marsh Posté le 26-09-2003 à 18:54:01    

Quel est l'intérêt de ton truc par rapport à un système de template?

Reply

Marsh Posté le 26-09-2003 à 19:51:02    

Citation :

Quel est l'intérêt de ton truc par rapport à un système de template?


 
Ben je sais pas justement. C'est pour ça que je voudrais bien votre avis. :D

Reply

Marsh Posté le 26-09-2003 à 20:00:57    

Cherrytree a écrit :

Si. Certains adorent, d'autres trouvent que non. Perso, je trouve que sapu.


 
+1

Reply

Marsh Posté le 26-09-2003 à 20:02:00    

Moi je n'en vois aucune. Un gestionnaire de template utilise une syntaxe unique pour recevoir les donnée qui sont nommée, ainsi, tu peux très bien remplacer ton template HTML par un tout autre support (PDF, XML, RSS,...) ce qui n'est pas possible avec ta structure. Et question performance, on ne gagne rien, entre un include et un autre...

Reply

Marsh Posté le 26-09-2003 à 20:10:10    

Citation :

Moi je n'en vois aucune. Un gestionnaire de template utilise une syntaxe unique pour recevoir les donnée qui sont nommée, ainsi, tu peux très bien remplacer ton template HTML par un tout autre support (PDF, XML, RSS,...) ce qui n'est pas possible avec ta structure. Et question performance, on ne gagne rien, entre un include et un autre...


 
Bah moi j'aime bien le principe des templates. J'essaye juste de voir si on peut faire autrement parce que ce systeme a qd meme des defauts (la lenteur par exemple).
 
Hermes, Cherrytree => vous avez deja essaye d'utiliser des templates?  
 

Reply

Marsh Posté le 26-09-2003 à 20:12:21    

impulse a écrit :

Citation :

Moi je n'en vois aucune. Un gestionnaire de template utilise une syntaxe unique pour recevoir les donnée qui sont nommée, ainsi, tu peux très bien remplacer ton template HTML par un tout autre support (PDF, XML, RSS,...) ce qui n'est pas possible avec ta structure. Et question performance, on ne gagne rien, entre un include et un autre...


 
Bah moi j'aime bien le principe des templates. J'essaye juste de voir si on peut faire autrement parce que ce systeme a qd meme des defauts (la lenteur par exemple).
 
Hermes, Cherrytree => vous avez deja essaye d'utiliser des templates?  
 


 
oui, et maintenant, c'est non.  :)  
 
ça ne fait que ralentir les applications pour un minuscule gain en lisibilité du code. En fait, plus on progresse et on est capable de coder proprement, moins les templates sont utiles...

Reply

Marsh Posté le 26-09-2003 à 20:12:21   

Reply

Marsh Posté le 26-09-2003 à 20:13:41    

la lenteur du templates, c'est uniquement si tu le reparses à chaque itération, sinon la seule lenteur que tu as, c'est de vérifier que ton template en cours est bien le dernier (comparaison d'une date), pour le reste, ce n'est pas plus lent vu que c'est du HTML avec le minimum de php imbriqué dedans, ce qui est plus rapide que l'inverse.

Reply

Marsh Posté le 26-09-2003 à 20:36:36    

Citation :

ça ne fait que ralentir les applications pour un minuscule gain en lisibilité du code. En fait, plus on progresse et on est capable de coder proprement, moins les templates sont utiles...


 
Dans 99% des cas tu ne dois meme pas ressentir une difference de perf. Le truc qui tue une appli web generalement c'est une requete mal foutue ou une connerie ds le genre. De plus, libre a toi d'optimiser ton code, tes requetes et d'utiliser un systeme de cache pour ameliorer les perfs. Bien sur il ne faut pas se tourner vers un moteur de templates mal codé ou trop lourd, il faut bien choisir (il existe des solutions tres rapides et tres legeres).
 

Reply

Marsh Posté le 26-09-2003 à 21:31:48    

impulse a écrit :

Citation :

Moi je n'en vois aucune. Un gestionnaire de template utilise une syntaxe unique pour recevoir les donnée qui sont nommée, ainsi, tu peux très bien remplacer ton template HTML par un tout autre support (PDF, XML, RSS,...) ce qui n'est pas possible avec ta structure. Et question performance, on ne gagne rien, entre un include et un autre...


 
Bah moi j'aime bien le principe des templates. J'essaye juste de voir si on peut faire autrement parce que ce systeme a qd meme des defauts (la lenteur par exemple).
 
Hermes, Cherrytree => vous avez deja essaye d'utiliser des templates?  
 
 


Non, j'ai par contre lu un chapitre de mon livre de PHP favori, Professional PHP 4, montrant à quel point OOH (c'est stricto-sensu ce que tu es en train de ré-inventer) était génial... avec ses lacunes et sa syntaxe PHP qui n'apportent rien, sauf, il est vrai plus d'unité pour le code de la page. Mais franchement est-ce que ça en vaut la peine. Je ne crois pas.


Message édité par Cherrytree le 26-09-2003 à 21:33:00
Reply

Marsh Posté le 03-10-2003 à 17:39:42    

ben moi, entre un fichier html à modifier pour modifier l'apparence de tout le site ou plusieurs ddisaines de fichiers php, j'ai choisit.
C'est peut être un peu plus long mais au moins un changement d'apparence ce fait en quelques minutes et on évite aussi de ce retrouver avec une apparence zarbi par ce qu'un test a merdé ou qu'un fichier php est simplement buggé. ;)
 
Il faut juste savoir ce qu'on veut : de la performance a tout pris, ou de la facilité de coding & mise a jour de la charte graphique.

Reply

Marsh Posté le 03-10-2003 à 20:16:19    

En te lisant, je ne suis pas sûr de partager ton point de vue. J'ai même l'impression que nos points de vue sont radicalement divergents.
 
En général, l'avantage de faire ton site en PHP, c'est par exemple l'utilisation des pseudo-frames, lesquelles assurent la cohérence de la charte.
 
En revanche une solution tout HTML permet de zapper l'analyse du code... C'est plus performant.


Message édité par Cherrytree le 03-10-2003 à 20:16:56

---------------
Le site de ma maman
Reply

Marsh Posté le 03-10-2003 à 22:11:29    

Cherrytree > je parle template contre code html perdus un peu partout dans le code php. ;)

Reply

Marsh Posté le 04-10-2003 à 09:43:19    

OK. Tu étais un niveau d'abstraction plus haut. :)


---------------
Le site de ma maman
Reply

Sujets relatifs:

Leave a Replay

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