[SPIP Zone] Gestion du cache SPIP d'un squelette spécifique

Bonjour,

Je souhaiterais savoir s'il est possible avec les fonctions PHP disponible dans 'ecrire\inc\invalideur.php' et 'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme si on effectuait un recalcul dessus.

En fait, je suis en train de développer un plugi, donc je souhaiterai apartir de ce dernier que les informations soit mise à jour à un instant donné sans pour autant que l'utilisateur ait à penser à vider le cache du SPIP ou à effectuer un recalcul manuel.

Bien sur je pourrais mettre le cache du squellette en question à 0. Mais bon j'aurais préfér" économiser la regénération de la page à chaque fois par le serveur.

Cordialement,

GUIOUBLY William.

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);

-- Fil

* Fil tapuscrivait, le 21/11/2007 22:38:

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);

Cela va vider l'intégraliter du cache.
Est-ce qu'il est possible de spécifier un squelette spécifique ?

--
RealET

RealET a écrit :

* Fil tapuscrivait, le 21/11/2007 22:38:
  

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.
      

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);
    

Cela va vider l'intégraliter du cache.
Est-ce qu'il est possible de spécifier un squelette spécifique ?

si tu connais le nom du squelette et le contexte, tu peux reconstituer le nom du fichier de cache et l'invalider par son nom (enfin, avant on pouvait, j'ai pas fait ca depuis longtemps)

@++

> suivre_invalideur(1);
Cela va vider l'intégraliter du cache.

oui

Est-ce qu'il est possible de spécifier un squelette spécifique ?

non, sauf à utiliser des invalideurs complexes -- ceux justement que
j'ai retirés du core parce qu'ils coutaient plus cher que ce qu'ils
gagnaient

-- Fil

Fil a écrit :

suivre_invalideur(1);
      

Cela va vider l'intégraliter du cache.
    
oui

Est-ce qu'il est possible de spécifier un squelette spécifique ?
    
non, sauf à utiliser des invalideurs complexes -- ceux justement que
j'ai retirés du core parce qu'ils coutaient plus cher que ce qu'ils
gagnaient
  
au fait, je crois me souvenir que tu as laissé l'ancien fonctionnement en optionnel, c'est quoi déjà l'option pour les réactiver ?
merci.

@++

Salut à tous,

Je suis aussi intéressé par cette question...

Le 22/11/07, Fil<fil@rezo.net> a écrit :

> > suivre_invalideur(1);
> Est-ce qu'il est possible de spécifier un squelette spécifique ?

non, sauf à utiliser des invalideurs complexes -- ceux justement que
j'ai retirés du core parce qu'ils coutaient plus cher que ce qu'ils
gagnaient

Donc, cela signifie (excepté peut-être la solution proposée par
Stéphane qui reste à éclaircir) qu'on est obligé d'utiliser des
#CACHE{0} ?

De plus j'ai fait quelques essais et il semble que des trucs de ce genre:

[(#BALISE{bidule}|?{#CACHE{0},#CACHE{beaucoup})]

ne fonctionnent pas toujours...

exemple concret:

#CACHE{3000}
[(#ENV{invalide}|?{#CACHE{0}})]

Ne fonctionne que parfois et je n'arrive pas à établir de règle pour
déterminer quand.

--
MARNE Bertrand

Stephane a écrit :

RealET a écrit :

* Fil tapuscrivait, le 21/11/2007 22:38:
  

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.
      

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);
    

Cela va vider l'intégraliter du cache.
Est-ce qu'il est possible de spécifier un squelette spécifique ?

si tu connais le nom du squelette et le contexte, tu peux reconstituer le nom du fichier de cache et l'invalider par son nom (enfin, avant on pouvait, j'ai pas fait ca depuis longtemps)

@++

Bonjour, je vous remercie de tous vos réponses rapides. bon en tout cas si j'ai bien compris l'ensemble des réponses, il me reste qu'a utiliser #CACHE{0} pour aller au plus simple. Je trouve tout de même dommage qu'il n'est pas été prévu dans SPIP un mécanisme pour vider le cache d'un squellette spécifique par le code PHP combien même que ce mécanisme ne soit pas si avantageux que ça. Ca aurait pu être potentiellement interressant pour les dévelloppeurs de plugin. Toute fois merci encore.

Bonjour, je vous remercie de tous vos réponses rapides. bon en tout cas
si j'ai bien compris l'ensemble des réponses, il me reste qu'a utiliser
#CACHE{0} pour aller au plus simple.

Ben non :

>>> include_spip('inc/invalideur');
>>> suivre_invalideur(1);

-- Fil

* Fil tapuscrivait, le 21/11/2007 22:38:

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);

Est-ce que ce serait pertinent dans le plugin cfg de pouvoir avoir une option qui dise que cette invalidation globale doit se produire si les valeurs changent à l'enregistrement (je pense typiquement au plugin LayoutGala) ?

--
RealET

RealET a écrit :

* Fil tapuscrivait, le 21/11/2007 22:38:
  

Je souhaiterais savoir s'il est possible avec les fonctions PHP
disponible dans 'ecrire\inc\invalideur.php' et
'ecrire\public\cacher.php' de vide le cache d'un fichier squellete comme
si on effectuait un recalcul dessus.
      

Normalement tu fais juste :
include_spip('inc/invalideur');
suivre_invalideur(1);
    

Est-ce que ce serait pertinent dans le plugin cfg de pouvoir avoir une option qui dise que cette invalidation globale doit se produire si les valeurs changent à l'enregistrement (je pense typiquement au plugin LayoutGala) ?
  

il suffit que dans ton plugin tu fasse, dans le fichier options :
$GLOBALS['marqueur'] .= ":".md5($GLOBALS['meta']['layout']);
par exemple
et le cache sera lié au layout
Cédric