Utiliser le composer `spip/cache` pour le cache des squelettes
Proposition d’utiliser le composant https://git.spip.net/spip/cache pour le cache des pages (tmp/cache/calcul).
/!\ Cette PR merge dans !5709 (closed) pour plus de lisibilité
On utilise un LimitedFilesystem
qui est un cache PSR-16 utilisant le même comportement que le cache actuel, à savoir écrire des fichiers dont le nombre est liimté à 256 × 256 fichiers.
Le chemin (hash, et extension) change, car on retourne un fichier PHP valide, qui retourne un array, est peut être mis en cache par opcache. On utilise aussi un hasher plus rapide que md5 ou sha256
On a donc ab/cd.php
à la place de ab/cd.cache
TTL & invalidation
Notons que la construction de PSR-16 implique un TTL sur le cache (que j’ai mis par défaut à 1 mois). L’invalidation se fait au moment de la lecture ($cache->has ou $cache->get), et les fichiers ne sont pas nettoyés automatiquement autrement s’ils ont expirés.
Cela étant dit, $cache->clear()
efface tout le cache, mais une méthode supplémentaire à PSR-16 est introduite ($cache->clearExpired()
) est présente éventuellement pour être appelée par un cron.
Ça ne concerne pas vraiment ce LimitedFilesystem
qui est limité en nombre de fichiers par construction, mais si on change un jour, il faudra songer à appeler cette méthode.