Se connecter / S'enregistrer
Votre question

[Php] Création d'un moteur de template, problème avec les conditions

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
13 Février 2007 19:56:56

Voilà bonjour à tous, j'ai décidé de créer mon propre moteur de template.
Je sais qu'il en existe de très bons déjà faits etc mais je le fais surtout pour apprendre, voir comment ça marche etc.
Je me suis aidé de ce tuto pour faire ce que j'ai :http://skillexchange.info/blog/index.php?2005/04/14/27-...
et me suis inspiré de gagatemplate de gaga26 dont le tuto est disponible sur le site du Zéro.
Pour l'instant le moteur ne fait que le remplacement de variables.
Voici le code du moteur :
  1. <?php
  2.  
  3. class evoluTemplix
  4. {
  5. // Declaration des variables utilisées par le moteur
  6. private $dossierTemplate ; // Adresse du dossier des templates par rapport à la page
  7. private $contenuTemplate ; // Contenu du fichier TPL
  8. private $cleVariable ; // Cle utilisée par le TPL pour appeller une valeur
  9. private $valeurVariable ; // Valeur d'une variable (liée à sa clé)
  10.  
  11.  
  12. // Constructeur, on défini le dossier des template et on initialise les variables moteur
  13. function __construct($dossier)
  14. {
  15. $this->dossierTemplate = $dossier ;
  16. $this->contenuTemplate = '' ;
  17. $this->cleVariable = array() ;
  18. $this->valeurVariable = array() ;
  19. }
  20.  
  21.  
  22. // On assigne une clé à sa valeur
  23. function assigne($cle, $valeur = null)
  24. {
  25. if(is_array($cle))
  26. {
  27. foreach($cle as $cle => $valeur)
  28. {
  29. $cle = '{$'. $cle .'}' ;
  30. array_push($this->cleVariable, $cle) ;
  31. array_push($this->valeurVariable, $valeur) ;
  32. }
  33. }
  34. else
  35. {
  36. $cle = '{$'. $cle .'}' ;
  37. array_push($this->cleVariable, $cle) ;
  38. array_push($this->valeurVariable, $valeur) ;
  39. }
  40. }
  41.  
  42.  
  43. // Parsage du fichier TPL
  44. function parse($file)
  45. {
  46. $this->contenuTemplate = file_get_contents($this->dossierTemplate.$file) ; // Récupération du fichier TPL
  47. $this->contenuTemplate = str_replace($this->cleVariable, $this->valeurVariable, $this->contenuTemplate) ; // On remplace les clé par leur valeur respectives
  48. echo $this->contenuTemplate ; // On écrit le contenu du fichier sur la page
  49. }
  50.  
  51.  
  52. }
  53.  
  54. ?>


Alors voilà je voudrais faire des conditions qui seraient comme ça (remplacez les ** par des conditions)

  1. {?if(**)} Matthew est un gnome {?else} C'est un fou {/?if}


Le probleme c'est que je n'ai aucune idée de comment fait ça, j'ai pensé que je pouvais essayer de les retrouver et les faire executer avec eval() mais je vois pas comment faire ça.
Sinon j'aimerai savoir comment faire pour chronometrer le temps d'éxécution de la page et de le placer dans une variable {$chrono} par exemple, je sais qu'on peut le faire avec microtime(true) (je code en PHP 5) et qu'en faisant la différence entre le début et la fin on l'an, mais je veut compter le parsage du moteur dedans et je vois pas comment mettre la valeur dans une variable apres que le fichier ait été parsé.
Je sais pas si c'est très clair pour vous donc n'hésitez pas à poser des questions !! :) 


Merci beaucoup d'avance ;)  !!

Autres pages sur : php creation moteur template probleme conditions

13 Février 2007 19:59:29

** Mauvais clik :D  .
Merci de m'aider :ange: 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS