[PHP5] LIGHTEMPLATE - MOTEUR DE TEMPLATES ULTRA-LÉGER

Signaler
Messages postés
1127
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
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/46354-php5-lightemplate-moteur-de-templates-ultra-leger

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Merci de t'intéresser à ma source :) Elle n'est donc pas totalement morte ^^

Dans l'ordre...
- Des exemples : Oui, ça pourrait être pas mal, en effet. Je pensais en fait que c'était l'utilisation de la classe qui nécessitait d'être illustrée, un template restant un template...
- Nettoyer les lignes vides : euh... Je vois pas bien l'utilité fondamentale...
- isEmptyDir : je crains que ta fonction n'offre pas la même finesse dans la gestion des exceptions. Ou alors je suis pas assez bien réveillé pour bien comprendre.
- DIRECTORY_SEPARATOR : dans l'absolu, je te donne raison. Dans la pratique, PHP sait parfaitement manipuler les / dans les chemins sur Windows avec toutes les fonctions de fichiers... Je n'ai jamais vraiment compris l'intérêt profond que présente cette variable dans l'utilisation courante... Si encore il était utile d'écrire à l'écran le chemin d'un fichier pour l'utilisateur... mais même pas...
- blocs imbriqués : Je ne souhaite pas que ce soit possible, parce que cela obligerait l'utilisation d'expressions régulières, or c'est une contrainte que je me suis fixé dès le départ. Et si je dois utiliser des Regex, autant réécrire Smarty. On peut imbriquer des blocs en utilisant un template par boucle, et en assignant le résultat d'un premier à une variable d'un autre. Permettre des blocs imbriqués reviendrait à permettre de faire la même chose de plusieurs manières différentes, ce qui est contraire à ma ligne de coding.
- ob_start() : je vois pas bien l'intérêt... Si tu veux bien expliquer un peu...
Messages postés
15
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
2 novembre 2010

Re...

peut être mais de mon coté je trouve ceci bien pour alléger le contenu.

:: IDEES ::
Pour quoi pas :
- donner un/des exemple/s précis avec les fonctions de ta classe en utilisent des *.tpl
- un petit netoyage des lignes vides dans le file_get_contents
- un function qui peut etre t'evitera de faire trop des vérifications dans ton __construct

function isEmptyDir($dir,$_return = false) {
if(is_dir($dir)):$_return (($files @scandir($dir)) && count($files) <= 2);
endif;
return $_return;
}

- utiliser DIRECTORY_SEPARATOR;
- donner la possibilité d'utiliser des block in block
ex:
<!-- BEGIN main_menu -->
<!-- BEGIN items -->
<!-- END items -->
<!-- END main_menu -->
- utiliser ob_start() avant "file_get_contents"

P.S.: il est 2h de mat je n'ai pas trop épluché ton code mais je reviendrais a l'occasion

Bon travail si non encore quelques modif et tu peux changer de niveaux ...:p
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
Salut,

Cela n'est, à mon sens, pas du ressort du template. Cela peut être fait de manière indépendante par une fonction externe.
Le template se contente de remplacer des variables dans un modèle : c'est son rôle, il ne fait rien d'autre.
Messages postés
15
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
2 novembre 2010

bonsoir.... et joyeux noel

le bosseurs ils se retrouve meme "dans le coin"

pour quoi pas prévoir/ajouter une fonction de sanitize?

function sanitize_tpl($buffer) {
$search = array("/\>[^\S ]+/s", "/[^\S ]+\</s", "/(\s)+/s");
$replace = array(">", "<", "\\1");
$buffer = preg_replace($search, $replace, $buffer);
$buffer = str_replace(array("\n", "\t", "\r"), "", $buffer);
$buffer = str_replace(array(" "), " ", $buffer);
return $buffer;
}
Afficher les 45 commentaires