Créer un moteur de template

Simple -  
ChrisCompote Messages postés 75 Statut Membre -
Bonjour,

Voila j'aimerais créer un moteur de template (pour m'amuser et surtout pratiquer la POO) . Pour ça je cherche quelque information. Par exemple comment stoker les variables crée par l'utilisateur. Il feras $tpl->assign('NomDeMaVariable',$ContenuDeLaVariable); .

Les possibilités du template seront les suivantes.

Création de variable($tpl->assign('NomDeMaVariable',$ContenuDeLaVariableà;
Création de tableau ($tpl->assign_array('NomDuTableau',array()); )

Faire des conditions dans le code html, faire des boucles et crée des fonctions.

Voila si vous pouvez m'aider un peu en m'aiguillant, j'ai déjà vue quelque article mais rien de très passionnant .

A voir également:

1 réponse

ChrisCompote Messages postés 75 Statut Membre 8
 
Bonsoir,

Dans ta classe tu pourrais avoir quelque chose comme ca

public $vars

class Template
{
  public function __consctruct()
  {
    $this->vars = new stdClass();
  }
  public function assign($var_name, $var_content)
  {
    $this->vars->$var_name = $var_content;
  }


ou

public $vars

class Template
{
  public function __consctruct()
  {
    $this->vars =  array();
  }
  public function assign($var_name, $var_content)
  {
    $vars = $this->vars;
    $vars[$var_name] = $var_content;
    $this->vars = $vars;
  }


Tu crée tes mots clés qui seront ensuite transcrits en PHP
[SI var == 9]
<p>
[SINON]
<div>
[FINSI]

que tu pourras remplacer en faisant

preg_replace("/\[SI ([a-z][a-z0-9_-]+) ([=<>!]+) ([^\]]+)\]/", "if($\1 \2 \3){" , "$html");

$html = str_replace("[SINON]","else",$html);

$html = str_replace("[FINSI]","}",$html);

eval($html);

Voilà des idées
0