Moteur de templates : Différence entre versions
(→Aide au déboguage) |
(→Les filtres) |
||
| Ligne 52 : | Ligne 52 : | ||
===Les filtres=== | ===Les filtres=== | ||
Il est maintenant possible d'appliquer des filtre sur les contenus des variables de templates (variables contenues dans des accolades { }) avant que celles-ci ne soit remplacées. | Il est maintenant possible d'appliquer des filtre sur les contenus des variables de templates (variables contenues dans des accolades { }) avant que celles-ci ne soit remplacées. | ||
| − | La syntaxe <code>{ myVar:filter }</code> indique que le filtre ''filter''sera appliqué au contenu de la variable ''myVar'' au moment de sont remplacement dans le template. | + | La syntaxe <code>{ myVar:filter }</code> indique que le filtre ''filter'' sera appliqué au contenu de la variable ''myVar'' au moment de sont remplacement dans le template. |
Pour l'instant les filtres suivants sont disponibles : | Pour l'instant les filtres suivants sont disponibles : | ||
; html : les caractères html spéciaux sont remplacés par les entités correspondantes | ; html : les caractères html spéciaux sont remplacés par les entités correspondantes | ||
; htmlall : ... | ; htmlall : ... | ||
| − | ; js : | + | ; js : encode le contenu de la variable pour une utilisation dans une chaîne javascript délimitées par des guillemets simples |
===Aide au déboguage=== | ===Aide au déboguage=== | ||
Une nouvelle fonctionnalité intéressante pour les développeurs est la possiblité d'obtenir des informations de déboguage lorsque des erreurs surviennent au niveau des templates. | Une nouvelle fonctionnalité intéressante pour les développeurs est la possiblité d'obtenir des informations de déboguage lorsque des erreurs surviennent au niveau des templates. | ||
Version du 18 mai 2007 à 12:41
Depuis la version 6.0.0 d'Ovidentia un nouveau moteur de templates optionnel a été intégré. Il n'est pour l'instant disponible qu'à des fin de tests mais pourrait remplacer le moteur actuel dans une future version d'Ovidentia.
Sommaire
Activation
Pour activer le nouveau moteur de template il faut ajouter la ligne suivante dans le fichier config.php :
$babUseNewTemplateParser = true;
Compatibilité
Le nouveau moteur de templates à été développé de manière à pouvoir remplacer le moteur actuel de façon transparente : les templates existants produisent les mêmes résultats avec les deux moteurs.
Il existe cependant certains points qui ne fonctionneront pas comme précédemment avec le nouveau moteur :
- Les accolades imbriquées dans d'autres accolades ne seront pas remplacées (par exemple
{ myVar{ myNumber } }) - Les accolades contenues dans la valeur d'une variable de template ne seront pas remplacées
Note that the new functionalities introduced (see below) will not be backported to the legacy engine and so, templates using them will not be compatible with the current engine.
Performance
The main goal of the new engine is to improve the overall performance of template parsing. Speed improvements have been achieved through several techniques.
New pipeline
The templates are now processed in two steps: the template is first compiled into php code which in turn is executed to generate the html.
génére le code php exécute le php
[my_template.html] ==================> [code php] ==============> [html]
Utilisation d'un cache intermédiare
Le code php inermédiaire peut être mis en cache de manière à éviter de le regénérer lors des appels suivants.
disponible dans le cache ? exécute le php
|========================> [cache de code php] ==============> [html]
| ^
| |
| | mise en cache
| |
| génére le code php |
[my_template.html] ==================> [code php]
Benchmarks
Aucun benchmark pour l'instant.
Nouvelles fonctionnalités
Les filtres
Il est maintenant possible d'appliquer des filtre sur les contenus des variables de templates (variables contenues dans des accolades { }) avant que celles-ci ne soit remplacées.
La syntaxe { myVar:filter } indique que le filtre filter sera appliqué au contenu de la variable myVar au moment de sont remplacement dans le template.
Pour l'instant les filtres suivants sont disponibles :
- html
- les caractères html spéciaux sont remplacés par les entités correspondantes
- htmlall
- ...
- js
- encode le contenu de la variable pour une utilisation dans une chaîne javascript délimitées par des guillemets simples
Aide au déboguage
Une nouvelle fonctionnalité intéressante pour les développeurs est la possiblité d'obtenir des informations de déboguage lorsque des erreurs surviennent au niveau des templates.