Créer un moteur de template

Fermé
Simple - 2 juin 2010 à 18:30
ChrisCompote Messages postés 73 Date d'inscription mardi 8 juin 2010 Statut Membre Dernière intervention 19 juin 2010 - 8 juin 2010 à 21:07
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 73 Date d'inscription mardi 8 juin 2010 Statut Membre Dernière intervention 19 juin 2010 8
8 juin 2010 à 21:07
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