Version 3 — Décembre 2017 — JLuc
En complément à Plugin ’macrosession’ : usage optimisé et extension des données de session.
- Modèles : Il semble que les modèles utilisés dans un article sont mis en cache en ce qui concerne l’usage des balises #_SESSION
, et ce même lorsqu’il y a #CACHE{0}
dans le squelette du modèle. C’est un peu étrange mais les modèles ont des mécaniques de cache spécifiques et d’ailleurs ce n’est que depuis SPIP3 que les modèles peuvent, normalement, avoir un cache à . Faudrait explorer plus en détail.
- Inclusions : Inclure un simple #_SESSION{prenom}
dans une <INCLURE>
, et dans une #INCLURE
Arguments calculés : Les arguments doivent être des constantes, car le interprete_argument_balise
se fait à la compilation et non dans le contexte de SPIP. Par exemple, après un #SET{arg, une valeur}
, #GET{arg}
renvoie table_valeur($Pile["vars"], (string)'arg', null)
et non ’une valeur’. Ça semble une impossibilité conceptuelle, mais ne serait il pas possible de repousser cette limite ?
[ ( |filtre) ]
en les sanctionnant d’une erreur.SI SINON FIN
et signalement proprement par une erreurmicrocache
Le microcache (produit par le plugin éponyme) est un fichier cache totalement statique, de longue durée et dont le nom est facilement accessible. Du fait que le nom est accessible, on peut en effacer un sélectivement.
- Annonce sur seenthis
- Sources sur la zone
Le filtre |microcache
s’applique sur un id_auteur
, et reçoit le nom de fichier d’un squelette en argument. Le squelette caché par microcache reçoit l’id_auteur dans #ENV{id}
. On peut aussi appliquer |microcache
sur une chaine qui sert d’identifiant alphanumérique.
microcache stocke sous forme de fichiers et n’est donc souvent pas plus efficace que memoization.
Mais microcache a une interface pratique pour le stockage de data visiteur étendues ou squelettes de visu = un filtre portant sur un id_auteur, que n’a pas memoization en l’état.
Le code de microcache est simple et peut facilement être dupliqué et adapté pour d’autres formes de stockage que sur le disque. On pourrait donc faire un plugin dupliquant l’interface filtre de microcache et stockant avec memoization.
Une autre différence, c’est que microcache enregistre de manière plus « définitive » sur le disque dur, avec l’avantage que ça tient entre les redémarrages et l’inconvénients que ça se remplit sans jamais se vider si on ne fait rien.
Selon Fil, ce serait mieux de faire évoluer memoization
et d’abandonner
microcache
, donc ajouter à memoization
une couche « filtre sur id_auteur ou identifiant string ».