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 &$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
- $page : array<string|int, mixed>
- $lastmodified : int