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 :
<?php
class evoluTemplix
{
// Declaration des variables utilisées par le moteur
private $dossierTemplate ; // Adresse du dossier des templates par rapport à la page
private $contenuTemplate ; // Contenu du fichier TPL
private $cleVariable ; // Cle utilisée par le TPL pour appeller une valeur
private $valeurVariable ; // Valeur d'une variable (liée à sa clé)
// Constructeur, on défini le dossier des template et on initialise les variables moteur
function __construct($dossier)
{
$this->dossierTemplate = $dossier ;
$this->contenuTemplate = '' ;
$this->cleVariable = array() ;
$this->valeurVariable = array() ;
}
// On assigne une clé à sa valeur
function assigne($cle, $valeur = null)
{
if(is_array($cle))
{
foreach($cle as $cle => $valeur)
{
$cle = '{$'. $cle .'}' ;
array_push($this->cleVariable, $cle) ;
array_push($this->valeurVariable, $valeur) ;
}
}
else
{
$cle = '{$'. $cle .'}' ;
array_push($this->cleVariable, $cle) ;
array_push($this->valeurVariable, $valeur) ;
}
}
// Parsage du fichier TPL
function parse($file)
{
$this->contenuTemplate = file_get_contents($this->dossierTemplate.$file) ; // Récupération du fichier TPL
$this->contenuTemplate = str_replace($this->cleVariable, $this->valeurVariable, $this->contenuTemplate) ; // On remplace les clé par leur valeur respectives
echo $this->contenuTemplate ; // On écrit le contenu du fichier sur la page
}
}
?>
Alors voilà je voudrais faire des conditions qui seraient comme ça (remplacez les ** par des conditions)
{?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
![;) ;)]()
!!