Re: [SPIP Zone] Plugin de cache efficace

From : JLUC@... , the 10th February 2018 14:27

Pour tester j'ai commis un fichier cachelab. Les 2 fonctions qui parcourent et filtrent le cache selon un pattern paramétrable (par id_objet dans le contexte ou chaine dans le chemin du cache) sont visibles là https://zone.spip.org/trac/spip-zone/browser/_plugins_/xray/trunk/cachelab.php#L60 On peut lister les caches, leur ajouter un marqueur 'cachelab_mark' (qui pourrait être testé dans une surcharge de cache_valide du core) ou les vider complètement (les retirer du cache. microtime mesure les temps et on peut aussi varier la méthode de test du chemin : avec 3 chemins à tester, strpos est nettement plus rapide que preg_match. Pour l'instant, c'est pour étude et pas interfacé avec l'invalidation du cache SPIP. Pour interfacer avec SPIP il faudra surcharger suivre_invalideur. Il peut y avoir une surcharge standard mais on peut imaginer des surcharges spécifiques à un site. Et puis là ça parcourt tous les caches pour trouver ceux qu'il faut invalider car on n'a à disposition que la liste globale de tous les caches : c'est pas très efficace puisque la plupart ne sont pas concernés. On pourrait donc vouloir éviter de tout parcourir pour trouver les caches concernés. Ça pourrait se faire en gérant des listes de squelettes dont le cache doit être invalidé dans certaines conditions (par exemple si on ajoute ou modifie un forum / un article / un point GIS etc) À voir comment ces listes seraient alimentées : - automatiquement, pour les cas simples, lors de la création d'un cache - en php par des fonctions définissables par le webmestre - en SPIP par déclaration dans le squelette #INVALIDE_SI{modification, article} - par un cron qui scannerait la liste et mettrait les listes à jours ... Pour l'instant c'est dans le plugin xray et pour APC Cache seulement, mais si ça se continue, car ya plein de trucs à faire plutôt que l'actuel tout ou rien, ça devrait aller dans un plugin dédié et être agnostique par rapport à la méthode de cache (là ya encore quelques références de bas niveau à APC) JLuc Le 09/02/2018 à 09:17, JLuc a écrit :