Page : 1 |
gaga26 |
Posté le 17/11/2007 16:08
- #
|


741 messages
18 ans |
Bonjour à tous,
N'ayant pas vraiment le temps de rédiger la doc ces temps et ne voulant pas faire patienter les impatients, j'ai mis en ligne la version 4 de mon moteur de templates.
Citation : "Version 4" Cette version n'a presque rien à voir avec les versions précédentes. Elle utilise une syntaxe XML. La doc est en cours de rédaction. Référez vous aux exemples pour en comprendre le fonctionnement.
Ci dessous les principales modifs :
Cache
J'ai laisser le cache au temps, mais ce n'est pas du tout logique. Donc quand le cache time est à 0 (zéro), il est infinit, il faut donc le supprimer lorsqu'il y a eu de modification à l'aide d'une méthode nommée del_cache($file, $surnom).
Blocks
Ils n'existent tout simplement plus ! J'ai créer une méthode assign_array() qui est comparable à l'ancien assign_block() pour nous simplifier la vie et ne pas être trop perdu. Il n'y a plus que des variables et des foreachs, de ce fait, mon moteur n'a plus a chercher quelles variables appartiennent au block en cours, au block précédent (si il en a) ou si c'est une variables globale.
Variables
Tout ce qui est entre {...} est considéré comme une variable, faudra faire gaffe. Et tout ce qui est entre [...] est considéré comme une clé d'un tableau (voir exemple).
J'attends avec impatiences vos remarques. Edité par gaga26 le 17/11/2007 16:09
|
Ze Thriller |
Posté le 20/11/2007 00:06
- #
|

Membre
105 messages
24 ans |
Gaga, tu es déjà au courant de mon souhait concernant un convertisseur de templates (de code PHP on va pas abuser non plus ).
Pour le reste il est encore trop tôt pour que je télécharge la v4.0, néanmoins ça semble prometteur.
Mais:
Citation Tout ce qui est entre {...} est considéré comme une variable, faudra faire gaffe. Et tout ce qui est entre [...] est considéré comme une clé d'un tableau (voir exemple).
Le problème c'est que j'utilise TRES souvent les [ ] pour de la mise en forme. Il va faloir que j'encode tous mes crochets ??!
Et sinon:
Citation ... utilise l'XML ...
Y a-t-il des probs de compatibilité avec la déclaration XML des pages XHTML.
Je parle de ceci:
<?xml version="1.0" encoding="iso-8859-1" ?>
Il faudrait peut-être pour résoudre tout cela faire come sont fichus les JavaScripts inline (=non chargés par fichier externe), à savoir une balise CDATA pour eviter tout remplacement intempestif à l'intérieur.
Deuxième solution: garder le traditionnel format {$var} mais pour des valeurs dans des tableaux, ceci pourrait être très pratique:
{$tableau[$sous_tab]...[$cle]}
Avantages non négligeables:
- Compacité (pas besoin de 2 types de variables)
- Lisibilité: Avec PHP, on connait.
- Dynamicité: Soyons fous ! {$tableau[{$truc}]}
Gaga, tu m'avais dit que tu procédais par RegExp pour le parseur XML. Perso je ne vois toujours pas l'intérêt, mais si tu pense avoir fait mieux là je ne demande pas mieux que de jeter un coup d'oeil.
Ah oui, et s'il faut j'ai un tonneau d'aspirine, là derrière
Bref, bon courage
/me content car /me a trouvé la balise citation
|
gaga26 |
Posté le 20/11/2007 11:58
- #
|


741 messages
18 ans |
Salut, c'est vrai que pour les crochets et les accolades c'est un peu embêtant... Le mieux c'est de déclaré 4 variables et de les utiliser comme ça :
{crochg}texte entre crochet{crochd}
Pour le convertisseur, ça va venir, je veux déjà finir le modules de la documentation, j'ai presque dû recommencer à zéro.
J'utilise la syntaxe XML, mais ça ne reste pas moins du HTML qui se trouve dans les templates, pas besoin de doctype XML.
Et oui, je suis sur, j'ai fait des benchs avec simpleXML, DOM et les Regex. Classement :
- 1er Regex
- 2ème SimpleXML
- 3ème DOM
Pour la dynamique des tableaux, je pense que c'est possible comme ça (mais à vérifié):
{tableau[$cle]}
|
Ze Thriller |
Posté le 20/11/2007 12:58
- #
|

Membre
105 messages
24 ans |
Juste un détail... Je pensais à ça en codant hier... Est-ce qu'un script JS sera considéré comme une variable ?
Si oui, la bonne vieille syntaxe {$truc} serait à privilégier...
Exemple:
<script type="text/javascript">
function truc()
{ // <- Accolade ouvrante !
document.write('blablabla');
} // <- Accolade fermante !
</script>
|
gaga26 |
Posté le 20/11/2007 13:10
- #
|


741 messages
18 ans |
Effectivement, tout ce qui est entre accolade est considéré comme une variable.
Enfin attend, il faut que je vérifie un truc.
EDIT: I'm a newbie. J'ai mis .+ dans les regex alors qu'il faut que je mette [a-zA-Z0-9_-] ou sont équivalent. Rc2 à venir donc.
EDIT2 : RC2 is out. Le javascript est accepté. Il faut que ce qui est entre accolade soit un mot (\w en REGEX). Edité par gaga26 le 20/11/2007 13:21
|
JonathanMM |
Posté le 14/12/2007 22:53
- #
|

Membre
33 messages
17 ans |
Comme j'ai la super grave flemme de tester les alpha, est ce que ce bug est corrigé ?
|
gaga26 |
Posté le 15/12/2007 12:19
- #
|


741 messages
18 ans |
Ouai c'est bon, ce bug n'existe plus. Le moteur lit le tpl et le compile sans faire attention aux variables.
|
Ze Thriller |
Posté le 19/12/2007 04:01
- #
|

Membre
105 messages
24 ans |
Gaga, pour le convertisseur, je pensais à un truc...
Tu as toujours la v3.x sous la main, je suppose ?
Il te suffirait de changer ce que donne dans le template compilé les variables, blocs, etc... par des codes de la v4 est le tour est joué !
Ca ne sera sûrement pas parfait mais ça a l'avantage de la simplicité et d'une assez bonne fiabilité
|
gaga26 |
Posté le 19/12/2007 08:28
- #
|


741 messages
18 ans |
Mouai le problème c'est toujours les blocks et sous blocks, il n'y a aucun moyen de les séparer des variables "normales"...
Mais cette semaine il faut que je bosse à fond le proet TooZeWeb, on ouvre le site le 25 décembre, mais il reste plein de petit truc à faire, c'est la galère...
Alors tout le monde allez sur www.toozeweb.net le 25décembre.
|
Ze Thriller |
Posté le 19/12/2007 12:29
- #
|

Membre
105 messages
24 ans |
Citation Mouai le problème c'est toujours les blocks et sous blocks, il n'y a aucun moyen de les séparer des variables "normales"...
Mwais... mais que je sache... $g_b_var ce n'est pas la même chose que $this->vars , si ?
|
gaga26 |
Posté le 19/12/2007 19:43
- #
|


741 messages
18 ans |
Ouai mais après les blocks au 3ème niveaux ???
Je préfère faire un truc basique mais que l'utilisateur fasse lui même les modifes qu'il veut.
|
Ze Thriller |
Posté le 21/12/2007 12:56
- #
|

Membre
105 messages
24 ans |
Citation Je préfère faire un truc basique mais que l'utilisateur fasse lui même les modifes qu'il veut.
Ok... même quand "l'utilisateur" a n > 100 templates à convertir ?
|
gaga26 |
Posté le 21/12/2007 19:32
- #
|


741 messages
18 ans |
Citation : Ze Thriller Ok... même quand "l'utilisateur" a n > 100 templates à convertir ?
A ce moment là faut voir, soit il reste en version 3.3 et il perd quelques microsecondes par pages, soit son serveur ne tourne pas et il prend 5 bonnes minutes ( ) pour modifier ses templates (ce que j'ai fait pour un site assez conséquent).
|
Ze Thriller |
Posté le 23/12/2007 15:39
- #
|

Membre
105 messages
24 ans |
Citation il perd quelques microsecondes par page
Tant de travail pour quelques microsecondes... ah la la.
Bon, je crois que je vais rester à la 3.x pour l'instant
|
Vincordi |
Posté le 28/12/2007 18:28
- #
|

Membre
1 message
17 ans |
Les includes dynamiques ne sont pas inclus? C'est dommage, tout notre projet utilisait la 3.3...
|
gaga26 |
Posté le 28/12/2007 20:06
- #
|


741 messages
18 ans |
Si, normalement ça devrait marché, du moins je crois.
Je vais aller vérifier
Edit: Sisi ça doit marcher
private function parse_include_callback ($m){
if(strpos($m[1], '$')== 1) {//var
$v = substr($m[1], 1);
if(! isset($this-> vars[$v])) {
$this-> error('Variable pour l\'include non déclaré !');
return false;
}
$f = $this-> vars[$v];
}else
$f = $m[1];
[... ]
On voit très bien que si il y a un $, la variable est recherchée. Edité par gaga26 le 28/12/2007 20:31
|
Page : 1 |