Actualisation du cache

Lors d’une utilisation normale de SPIP, avec des visites, des nouveaux articles publiés, le cache et l’actualisation des données est correctement géré. Par défaut (mais des plugins pourraient modifier ce comportement), dès que SPIP a connaissance de modifications des contenus éditoriaux dans la base de donnée, il invalide tout le cache des pages. Une page demandée sera alors calculée de nouveau avant - ou après avec le plugin « Cache Cool » - d’être servie au visiteur.

Il est souvent nécessaire de vider le cache manuellement lorsqu’on effectue des modifications directement sur les fichiers, particulièrement en mettant à
jour une feuille de style ou un script Javascript calculés par des squelettes SPIP si les options de compressions sont actives.

Se rappeler que :

  • var_mode=calcul dans l’URL actualise le cache de la page
  • var_mode=recalcul (pour des administrateurs) dans l’URL recompile le squelette puis actualise le cache de la page.
  • passer sur la page de gestion des plugins ecrire/?exec=admin_plugin recalcule les fichiers de cache tmp/cache/charger_*.php des plugins, soit les listes de fichiers d’options, de fonctions et de pipelines.
  • le navigateur a son propre cache, que ce soit pour les pages ou pour les éléments AJAX. Il faut aussi penser à le vider (ce que souvent on peut obtenir avec la combinaison de touches CTRL+SHIFT+SUPPR) ; ce n’est pas forcément SPIP qui ne retourne pas les contenus attendus, mais peut être le navigateur qui retourne son cache.

Invalider le cache en php

Dans le code PHP d’un plugin, on peut forcer le vidage du cache au moyen du code suivant :

// On invalide les caches
include_spip('inc/invalideur');
suivre_invalideur("id='$objet/$id_objet'");

ou $objet et $id_objet indiquent habituellement quel est l’objet dont la modification entraîne une modification du cache.

Auteur Matthieu Marcillaud Publié le : Mis à jour : 19/06/20

Traductions : English, français, Nederlands