« Vide les caches ! », c’est le premier truc qu’on entends ici quand quelque chose ne va pas. L’usage intensif des caches par eZ Publish est bien connu. Mais je viens seulement de réaliser à quel point les caches et le CMS entretiennent une relation fusionnelle.
Je savais qu’eZ Publish utilisait des caches de contenu, de templates et de configuration. Normal. J’ai découvert lundi qu’il (ou elle, d’ailleurs ?) utilisait aussi des caches internes qui n’étaient pas effacés par le processus habituel.
Aujourd’hui, je viens de découvrir qu’eZ Publish utilisait des caches en mémoire vive durant l’exécution d’extensions PHP. Note : pour les gros scripts, penser à régulièrement vider les caches en appelant la fonction eZContentObject::clearCache(), sinon, ça sera un beau heap overflow.
En bonus, une petite fonction que vous pouvez appeler dans une grosse boucle, pour vider les caches à intervalles réguliers :
function clearCache($maxIterations) { static $iteration = 0; $iteration++; if($iteration >= $maxIterations) { printf("nettoyage du cache\n"); eZContentObject::clearCache(); $iteration = 0; } }
Combien d’autres caches que je n’ai pas encore découvert ?
Un Commentaire
php ./bin/php/ezcache.php –list-tags –verbose
php ./bin/php/ezcache.php –list-ids –verbose