Skip to content

Utiliser le composer `spip/cache` pour le cache des squelettes

marcimat a demandé de fusionner gh-ad922728/5710/unknown/refs/pull/5710/head vers new_path

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.

Rapports de requête de fusion