Dans ce message j'évoquais un remplacement du moteur de template de yAronet, que je viens de prendre le temps de publier sur GitHub. Sa principale caractéristique est de pouvoir injecter des variables pré-compilation, c'est à dire avant que le template ne soit compilé en code PHP et mis en cache, pour économiser du temps de calcul. De cette façon toutes les variables qui changent peu fréquemment voire jamais (racine de l'URL, langue du site et texte dans ces différentes langues, paramètres de configuration, etc.) peuvent être utilisées pour évaluer un maximum d'expressions de façon statique et ne laisser dans le code généré que celles qui varient réellement.
En pratique le gain n'est pas si intéressant que je l'aurais espéré, pour yAronet j'ai constaté une amélioration d'environ 10% sur le temps d'affichage des pages sachant que j'essayais auparavant de faire les mêmes optimisations à la main avec le moteur précédent, ce qui donnait un code relativement efficace mais particulièrement illisible : le gain se situe surtout là en ce qui me concerne.
La documentation est disponible sur Read the Docs : http://deval.readthedocs.io/
Et le code est chez GitHub : https://github.com/r3c/deval
Ce projet était également l'occasion de découvrir l'excellent générateur de parseur PEG.js, très facile à utiliser, et dont l'auteur a eu la bonne idée de découper la grammaire et la génération de code, permettant à d'autres développeurs de proposer des plugins pour d'autres langages (dont PHP, utilisé ici via phpegjs).
Bon, après, je suis pas sûr qu'il y ait beaucoup de gens qui développent encore en PHP par ici...
