BRÈVE CLASSE TEMPLATE

Utilisateur anonyme - 9 avril 2005 à 04:32
 Utilisateur anonyme - 9 avril 2005 à 17:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30638-breve-classe-template

Utilisateur anonyme
9 avril 2005 à 17:22
Ok.
En plus je viens de merendre compte que les templates peuvent gérer bien plus de chose que ça:
http://www.bertrand-soulier.com/php/tutoriaux/template1.php

Bon du coup je peux l'annoncer officiellement: mon script ne sert à rien :-D

Bah au moins j'aurais appris des trucs :-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 avril 2005 à 17:00
Bah dans ce cas autant ne pas utiliser de template du tout...

Par contre l'include est plus performant (et de loin) que le parsing avec expression régulière ;-)

a+
Utilisateur anonyme
9 avril 2005 à 15:51
Ah oui, c'est vrai j'ai oublié les "var" pour déclarer les variables de la classe.
C'est parce que j'avais commencé ça en php5, et je les avais déclarée en public, puis finalement ça servait à rien...

Donc, en espérant que je peux poster toute la source ici:

<?

class Template
{
var $send_vars; // Tableau qui contient les variables à envoyer au template.
var $page_source; // Source du tpl. Puis par la suite celà deviendra la source finale de la page.
var $tpl_vars; // Variables du fichier template (celles qui sont définies entre accolades{} )

function templatisation($tpl_addr)
{
// Ouverture du fichier template
file_exists($tpl_addr) ? $this->page_source=file_get_contents($tpl_addr) : die("Ficher Template introuvable");
//Isolation des variables template
preg_match_all("`\{([^}]+)\}`",$this->page_source,$this->tpl_vars,PREG_PATTERN_ORDER);

// Remplacement des variables tpl par leur alias dans le tableau $send_vars
foreach ($this->tpl_vars[1] as $current_tpl_var)
{
$this->page_source=str_replace("{".$current_tpl_var."}",$this->send_vars[$current_tpl_var],$this->page_source);
}
return $this->page_source;

}
}

?>

C'est vrai que la methode en utilisant include doit être plus performante, c'est plus direct....

Seulement entre la recherche d'une expression régulière dans un fichier tpl, et le traitement d'un fichier php inclus en fin de page, je ne sais pas quel est le plus performant....

Par contre le traitement des boucles, c'est un truc qui peut déjà se faire côté php avant de charger les variables:

ex: for ($i=0;$i<10;$i++)
{
$template->send_vars['TRUC'].="Machin truc

";
}

Remarque c'est une bonne idée mais ça signifierait inventer un système de boucle dans la template? Finalement une boucle php serait plus simple et plus rapide....
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 avril 2005 à 12:55
Salut,

perso je préfère le bon vieux système de l'include situé en fin de page avec des variables à remplacer, qui reste plus performant.

Ton système serait pas mal si tu implémentais une gestion des boucles dans ta template.

a +
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 avril 2005 à 12:38
Hello,

pour declarer un membre a ta classe, normalement, on ecrit :
var $send_vars;

Je ne l'ai pas testee...tu es sur qu'elle marche en l'etat ?

Sinon, rien a redire :-)
Utilisateur anonyme
9 avril 2005 à 04:32
Argh, je ne sais pas si c'est pareil chez vous mais la moitié des lignes sont mangées par la page...
Il manque des bouts de codes si la ligne dépasse un peu..
Rejoignez-nous