PHP + Xajax + Html : code crado, solution : Moteur de template ?

PHP + Xajax + Html : code crado, solution : Moteur de template ? - PHP - Programmation

Marsh Posté le 24-07-2007 à 14:19:16    

Bonjour,
 
Alors je vous pose le décors assez rapidement. Je developpe avec un amis un site web assez lourd en terme de code. Pour cela nous utilisons plusieurs librairies et notamment Xajax. Cette librairie impose que le Javascrit qu'elle produit soit écrit avant le moindre bout d'html.
 
Tout ca pour dire que ça deviens le merdier dans tous les script. Voila comment on procede pour l'instant:
 
Le design du site est séparé en 2 parties : le header et le footer. La séparation est faite la ou le contenu du script est affiché.
 
Donc pour chaque script : on écrit tout le xajax en PHP, ensuite on include le header, puis on met le code html + php pour l'affichage et enfin on include le footer.
 
Cela fait un beau bordel bien moche. J'ai donc regardé du coté des templates, PHPLib a l'air sympa, mais je me demande si vous auriez une idée pour faire la chose suivante:
 
Une page php avec le design à l'interieur, et la ou le contenu doit être affiché, un switch, qui recupere une variable get et include la page suivant cette variable (c'est ce que je faisait avec mes précédents sites). Or la je ne peux pas a cause du xajax car il doit être 'printer' avant le header html .
 
Si vous avez une idée de comment clarifier mon code ça serai sympa


Message édité par Kyfun le 29-07-2007 à 12:15:43

---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Marsh Posté le 24-07-2007 à 14:19:16   

Reply

Marsh Posté le 28-07-2007 à 10:19:40    

Utilise un moteur de templates, comme PHPLib, Smarty ou encore PHPSavant. ça permet de bien séparer la logique de l'application de son affichage.

Reply

Marsh Posté le 28-07-2007 à 21:02:35    

T'as pas des exemples pour que ce soit plus clair ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 29-07-2007 à 12:09:53    

Bon du coup j'utilise le moteur de template de PHPLib :), ce me permet de rendre la chose beaucoup plus "lisible"

 
Code :
  1. <?php
  2. /*======================== template =========================*/
  3. require_once('./lib/template.php');
  4. //creation du template
  5. $template = new Template('./template/');
  6. //alias du template a utiliser
  7. $template->set_filenames(array('lostPwd' => 'lostPassword.tpl'));
  8. /*======================== fin template =====================*/
  9. /*======================== code =============================*/
  10. //includes
  11. require_once('./classes/user.inc.php');
  12. require_once('./xajax/xajax.inc.php');
  13. require_once('./decide_lang.php');
  14. require_once('./communs/func.inc.php');
  15. function lostPwd($mail)
  16. {
  17.     $objResponse = new xajaxResponse();
  18.     ...
  19.     return $objResponse->getXML();
  20. }
  21. //Eventuellement le passage de variables/bloc au templates
  22. //Ici il n'y en a pas
  23. //new xajax object
  24. $objAjax = new xajax();
  25. //register function
  26. $objAjax->registerFunction('lostPwd');
  27. //request
  28. $objAjax->processRequests('./xajax/');
  29. $objAjax->printJavascript('./xajax/');
  30. /*======================== fin code =========================*/
  31. /*======================== affichage ========================*/
  32. require_once('./template/welcome_header.php');
  33. //contenu
  34. $template->pparse('lostPwd');
  35. //footer
  36. require_once('./template/welcome_footer.php');
  37. /*======================== fin affichage ====================*/
  38. ?>
 

Et pour passer des variables rien de plus simple.
J'ai trouvé 2 très bon tutos sur developpez:

 

http://g-rossolini.developpez.com/ [...] templates/

 

et

 

http://php.developpez.com/faq/?pag [...] er-gabarit

 

Voila si ça peut en interesser d'autres :)


Message édité par Kyfun le 29-07-2007 à 12:10:06

---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Marsh Posté le 29-07-2007 à 12:57:14    

Bonjour,  
En ce qui me concerne, j'utilise au boulot Smarty et cela va bien. Tu as un bon découpage du code métier PHP et du rendu HTML
 
lien: http://smarty.php.net

Reply

Marsh Posté le 29-07-2007 à 13:28:02    

J'ai regardé aussi Smarty qui est elle aussi très utilisée. Pour le besoin que j'ai, la template PHPLib me suffit largement et est assez accessible.
 
En 5 min on utilise le moteur de PHPLib. Pour Smarty il me semble qu'il faut quand même un peu plus étudier la syntaxe etc.


---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Marsh Posté le 29-07-2007 à 13:34:42    

autre solution, tu fais ton propre moteur de templates avec la syntaxe que tu veux, ça prend 1 heure, c'est moins lourd et tout aussi puissant que les autres [:spamafote]


---------------
The Rom's, à votre service
Reply

Marsh Posté le 29-07-2007 à 13:39:49    

TheRom_S a écrit :

autre solution, tu fais ton propre moteur de templates avec la syntaxe que tu veux, ça prend 1 heure, c'est moins lourd et tout aussi puissant que les autres [:spamafote]


 
Je suis partisant d'utiliser ce qui existe déjà, qui a déjà été épprouvé et reflechie. Quand tu vois que pour le moteur de template de PHPLib c'est un seul fichier php à inclure... C'est pas ce qu'on peux appeler une usine a gaz, la syntaxe est très simple et ça marche très bien je trouve.
 
Donc tant qu'a faire je préfère utiliser cette heure que j'aurai prise à faire mon moteur de template pour par exemple la sécu du site ou autre ^^
 
C'est mon avis :)
 
Par contre si tu as developpé le tiens, je voudrais bien voir à quoi ca ressemble. Tu peux le posté ici ? Ou par MP :)


---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Sujets relatifs:

Leave a Replay

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