Pour les heureux utilisateurs de FastTemplates

Pour les heureux utilisateurs de FastTemplates - PHP - Programmation

Marsh Posté le 27-08-2002 à 18:34:15    

hello à tous,  
 
Voici une nouvelle qui fera plaisir à tous ceux qui utilisent ce "merveilleux" ( ;) ) gestionnaire de template et qui déplorent sa lenteur !!
 
J'ai fini une première modification pour qu'il égale (ou au moins essaye) en rapidité les meilleurs gestionnaires de templates...
 
source : http://www.ethernal.be/pages/fastTemplates.class.phps
benchmark 1 : http://www.ethernal.be/work/templa [...] mark1.html
benchmark 2 : http://www.ethernal.be/work/templa [...] mark2.html
 
en pratique, il engendre des gains de qq centièmes pour de petites pages, et de 50% pour les pages plus conséquentes.
 
Il est encore améliorable et le sera sans doute d'ici peu.
Entre autre la fonction dynamique (define_dynamic -> parse_dynamic) qui est plus lente que d'origine :(
 
Toute les méthodes publiques ont été conservées, l'utilisation est identiquement la même. (donc vous pouver écraser l'ancienne classe sans crainte)
 
Seul les méthodes strict() et no_strict() ont disparu pour laisser place à  
- show_unk_keys () pour écrire dans le log d'apache les clés non transformées. (correspond à l'ancien strict() )
- remove_unk_keys () pour enlever sans message les clés non trouvées (correspond à l'ancien no_strict() )
- let_unk_keys () laisse les clés non trouvées (pas de suppression du template)
 
Voila qui devrait vous permettre de continuer à développer avec FastTemplates sans avoir peur de devoir passer à un autre gestionnaire.
a+


---------------
...oups kernel error...
Reply

Marsh Posté le 27-08-2002 à 18:34:15   

Reply

Marsh Posté le 28-08-2002 à 17:51:14    

Même si je ne me sers po de FastTemplates ts les jours, je te félicite pour ces modifs !

Reply

Marsh Posté le 28-08-2002 à 19:47:58    

ethernal a écrit a écrit :

hello à tous,  
 
Voici une nouvelle qui fera plaisir à tous ceux qui utilisent ce "merveilleux" ( ;) ) gestionnaire de template et qui déplorent sa lenteur !!
 
J'ai fini une première modification pour qu'il égale (ou au moins essaye) en rapidité les meilleurs gestionnaires de templates...
 
source : http://www.ethernal.be/pages/fastTemplates.class.phps
benchmark 1 : http://www.ethernal.be/work/templa [...] mark1.html
benchmark 2 : http://www.ethernal.be/work/templa [...] mark2.html
 
en pratique, il engendre des gains de qq centièmes pour de petites pages, et de 50% pour les pages plus conséquentes.
 
Il est encore améliorable et le sera sans doute d'ici peu.
Entre autre la fonction dynamique (define_dynamic -> parse_dynamic) qui est plus lente que d'origine :(
 
Toute les méthodes publiques ont été conservées, l'utilisation est identiquement la même. (donc vous pouver écraser l'ancienne classe sans crainte)
 
Seul les méthodes strict() et no_strict() ont disparu pour laisser place à  
- show_unk_keys () pour écrire dans le log d'apache les clés non transformées. (correspond à l'ancien strict() )
- remove_unk_keys () pour enlever sans message les clés non trouvées (correspond à l'ancien no_strict() )
- let_unk_keys () laisse les clés non trouvées (pas de suppression du template)
 
Voila qui devrait vous permettre de continuer à développer avec FastTemplates sans avoir peur de devoir passer à un autre gestionnaire.
a+




 
C claier ! merci à toi !
 
J'ai fait tout mon site avec fast template et je suis pas mécontent de l'outil, même si il est pas le plus rapide.
 
Sympa de continuer à le developper en tout cas :)

Reply

Marsh Posté le 29-08-2002 à 00:59:59    

:jap:  
au moins une personne qui l'emploit ;) :lol:
 
j'ai mis une V2 hier (écrasé l'ancienne)
elle optimise les define_dynamic() et les parse de blocks dynamiques (entre 25-50% de gains lors d'une boucle dynamique).
 
si tu remarques des problèmes de compatibilité de l'utilisation de la classe originale par rapport à celle-ci n'hésite pas à me contacter.  jusqu'ici je n'ai pas rencontré de problème.
 
a+
Ethernal


---------------
...oups kernel error...
Reply

Marsh Posté le 29-08-2002 à 01:08:06    

pour expliquer ce que j'ai fait :
au lieu de parser le texte à la recherche de {tags} avec str_replace(), j'ai fait une fonction sur base d'inspiration de phemplate.
Elle découpe le texte en un tableau $template[$i]['str'] et $template[$i]['key'].  C'est largement plus rapide !
 
je m'arrange pour ne le faire qu'une seule fois (au chargement du template (get_tempate() ) ou lors de l'extraction du block dynamique.
 
Lors de la V1, pour extraire un bloc dynamique, je recréeais le texte puis extraction du block, puis transfo en tableau du parent et du block.
Dans la V2, je parcours directement le tableau du parent et recrée à la volée le tableau du parent (sans le block dynamique) et le block dynamique.


---------------
...oups kernel error...
Reply

Marsh Posté le 29-08-2002 à 12:33:42    

ethernal a écrit a écrit :

pour expliquer ce que j'ai fait :
au lieu de parser le texte à la recherche de {tags} avec str_replace(), j'ai fait une fonction sur base d'inspiration de phemplate.
Elle découpe le texte en un tableau $template[$i]['str'] et $template[$i]['key'].  C'est largement plus rapide !
 
je m'arrange pour ne le faire qu'une seule fois (au chargement du template (get_tempate() ) ou lors de l'extraction du block dynamique.
 
Lors de la V1, pour extraire un bloc dynamique, je recréeais le texte puis extraction du block, puis transfo en tableau du parent et du block.
Dans la V2, je parcours directement le tableau du parent et recrée à la volée le tableau du parent (sans le block dynamique) et le block dynamique.




 
Ben de toute façon, le strreplace merdait grave sous php 4.2.2 ? (celui sur ovh) et j'avais déjà dû le bidouiller pour que ça marche.
 
J'ai pas encore essayé ta classe : je fais ça ce soir et je t'envoie mon feedback.

Reply

Marsh Posté le 29-08-2002 à 14:24:10    

latruffe a écrit a écrit :

 
 
Ben de toute façon, le strreplace merdait grave sous php 4.2.2 ? (celui sur ovh) et j'avais déjà dû le bidouiller pour que ça marche.
 
J'ai pas encore essayé ta classe : je fais ça ce soir et je t'envoie mon feedback.




 
ok thx :)
 
y a juste ne chose qui ne fctera pas :
si tu veux remplacer {var} par {var2}{var3}, puis {var2} par xx et {var3} par yy.
évidemment c'est pas très courant comme technique...


Message édité par ethernal le 29-08-2002 à 14:28:26

---------------
...oups kernel error...
Reply

Marsh Posté le 29-08-2002 à 22:18:57    

ben écoute pour le moment, je ne rencontre aucun problème avec ta classe.  
Ca a l'air de bien fonctionner.

Reply

Marsh Posté le 29-08-2002 à 22:28:01    

latruffe a écrit a écrit :

ben écoute pour le moment, je ne rencontre aucun problème avec ta classe.  
Ca a l'air de bien fonctionner.




 
ouf ;)


---------------
...oups kernel error...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed