Bonjour,
En réfléchissant autour de Zpip, noiZetier, nous sommes partis du constat suivant :
- Zpip et le noiZetier utilisent massivement {env}
- ce qu'ils incluent n'utilise pas forcément tous les paramètres de l'environnement pour se calculer (parfois aucun)
- les inclusions peuvent elles-mêmes inclure une autre inclusion qui, elle, utilisera un paramètre de plus
A inclus B (utilise rien) inclus C (utilise id_article) inclus D (utilise id_rubrique calculé en C + #ENV{id_rubrique} donné par A)
Du coup, B a autant de caches que de contexte d'env différents, et cela, pour rien puisque tous les cache sont identiques.
Cela dans le cas ou B <INCLUS C>
Si B #INCLUS C, alors, c'est normal que B ait autant de caches que C
De là, quelques idées :
- déclarer dans l'entête des squelettes les paramètres d'environnement effectivement utilisés dans le squelette
- déclarer aussi ceux qui ne sont pas utilisés, mais qui doivent être passés aux inclusions
- ou calculer à la compilation les éléments de l'environnement :
- utilisés dans le squelette (y compris par héritage dans les #inclusions)
- passés aux <inclusions>
- ne créer des caches différents que pour les paramètres effectivement utilisés
- peut-être qu'à partir du moment où il n'y aurait un cache différent que pour les paramètre effectivement utilisés, la connaissance des paramètres passés aux inclusion n'aurait plus d'importance et que se contenter de les passer tous suffirait...
Ça inspire quoi ces réflexions ?
-- RealET