cacher.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Constants
- _DUREE_CACHE_DEFAUT = 24 * 3600
Functions
- cache_key() : string
- Returns a key cache (id) for this data
- ecrire_cache() : bool
- Écrire le cache dans un casier
- lire_cache() : null|mixed
- lire le cache depuis un casier
- cache_signature() : string
- Signature du cache
- gzip_page() : array<string|int, mixed>
- Faut-il compresser ce cache ?
- gunzip_page() : void
- Faut-il decompresser ce cache ?
- cache_valide() : int
- Gestion des delais d'expiration du cache... $page passee par reference pour accelerer
- creer_cache() : mixed
- Creer le fichier cache
- public_cacher_dist() : string|void
- Interface du gestionnaire de cache
Constants
_DUREE_CACHE_DEFAUT
    public
        mixed
    _DUREE_CACHE_DEFAUT
    = 24 * 3600
    
    
    
    
Functions
cache_key()
Returns a key cache (id) for this data
    
                    cache_key(array<string|int, mixed> $contexte, array<string|int, mixed> $page) : string
    
        Parameters
- $contexte : array<string|int, mixed>
- $page : array<string|int, mixed>
Return values
stringecrire_cache()
Écrire le cache dans un casier
    
                    ecrire_cache(string $cache_key, array<string|int, mixed> $valeur) : bool
    
        Parameters
- $cache_key : string
- $valeur : array<string|int, mixed>
Return values
boollire_cache()
lire le cache depuis un casier
    
                    lire_cache(string $cache_key) : null|mixed
    
        Parameters
- $cache_key : string
Return values
null|mixed —null: probably cache miss
cache_signature()
Signature du cache
    
                    cache_signature(mixed &$page) : string
        Parano : on signe le cache, afin d'interdire un hack d'injection dans notre memcache
Parameters
- $page : mixed
Return values
stringgzip_page()
Faut-il compresser ce cache ?
    
                    gzip_page(array<string|int, mixed> $page) : array<string|int, mixed>
        A partir de 16ko ca vaut le coup (pas de passage par reference car on veut conserver la version non compressee pour l'afficher) on positionne un flag gz si on comprime, pour savoir si on doit decompresser ou pas
Parameters
- $page : array<string|int, mixed>
Return values
array<string|int, mixed>gunzip_page()
Faut-il decompresser ce cache ?
    
                    gunzip_page(array<string|int, mixed> &$page) : void
        (passage par reference pour alleger) on met a jour le flag gz quand on decompresse, pour ne pas risquer de decompresser deux fois de suite un cache (ce qui echoue)
Parameters
- $page : array<string|int, mixed>
cache_valide()
Gestion des delais d'expiration du cache... $page passee par reference pour accelerer
    
                    cache_valide(array<string|int, mixed> &$page, int $date) : int
    
        Parameters
- $page : array<string|int, mixed>
- $date : int
Return values
int —- 1 si il faut mettre le cache a jour
- 0 si le cache est valide
- -1 si il faut calculer sans stocker en cache
creer_cache()
Creer le fichier cache
    
                    creer_cache(array<string|int, mixed> &$page, string &$cache_key) : mixed
        Passage par reference de $page par souci d'economie
Parameters
- $page : array<string|int, mixed>
- $cache_key : string
public_cacher_dist()
Interface du gestionnaire de cache
    
                    public_cacher_dist(array<string|int, mixed> $contexte, int &$use_cache, string|null &$cache_key, array<string|int, mixed> &$page, int &$lastmodified) : string|void
        Si son 3e argument est non vide, elle passe la main a creer_cache Sinon, elle recoit un contexte (ou le construit a partir de REQUEST_URI) et affecte les 4 autres parametres recus par reference:
- use_cache qui vaut -1 s'il faut calculer la page sans la mettre en cache 0 si on peut utiliser un cache existant 1 s'il faut calculer la page et la mettre en cache
- cache_key est un identifiant pour ce cache, ou vide si pas cachable
- page qui est le tableau decrivant la page, si le cache la contenait
- lastmodified qui vaut la date de derniere modif du fichier. Elle retourne '' si tout va bien un message d'erreur si le calcul de la page est totalement impossible
Parameters
- $contexte : array<string|int, mixed>
- $use_cache : int
- $cache_key : string|null
- $page : array<string|int, mixed>
- $lastmodified : int