Amb PHP existeixen mecanismes millors, com APC, Memcache, etc... però aquest és molt més simple, i el que s'usa a flog.cat per fer caxé d'algunes coses com les últimes novetats de "flog.cat en directe" i reduir el temps de la càrrega de la pàgina inicial (per usuaris no loguejats).
Per solucions més complexes o pesades, cal implementar altres sistemes.
El següent sistema està basat en un arxiu i simplement gestiona l'escriptura en caxé, el control del flux del caxé, actualització i la lectura de caxé.
if($login) $cache=false;//els usuaris loguejats no tenen caxé xq la seva query està en funció de la sessió
else {
$cache=(rand(0,2)>0); //agafa de caxé el 66% de vegades
}
if(!$cache) { //sense caxé - regenerar
if(!$login) ob_start(); //inicia el buffer d'output
if($login) $sql='SELECT ................ ';
else $sql='SELECT ................ ';
$query=query($sql);
while($row=mysql_fetch_assoc($query)) {
/* ..... imprimir html ..... */
}
if(!$login) file_put_contents('arxiu_caxe.ch',ob_get_flush()); //enviem a l'arxiu de caxé i imprimim alhora (get_flush)
}
else readfile('arxiu_caxe.ch'); //caxé - imprimir html caxejat de fitxer, sense més
?>