SPIP cachet bepaalde elementen van de database om ongewenste oproepen naar de SQL Server te voorkomen en om ervoor te zorgen dat de weergave van publieke pagina’s die zich al in de cache bevinden ook kan werken als de databaseserver niet beschikbaar is. Zo ontstaan er twee caches.
{{{Meta-cache}}}
De eerste is een volledige export van de SQL tabel
spip_meta
. In deze tabel worden de parameters voor de configuratie of de werking van SPIP opgeslagen. Deze informatie wordt opgeslagen in de globale variabele
$GLOBALS['meta']
en, met uitzondering van gevoelige gegevens gebruikt voor authenticatie, in het bestand
tmp/meta_cache.php
. Dit bestand heeft een geldigheidsperiode gedefinieerd door
_META_CACHE_TIME
. Het wordt herschreven wanneer
ecrire_meta()
of
effacer_meta()
wordt aangeroepen. De functie
lire_metas()
herberekent
$GLOBALS['meta']
met de informatie uit de database.
{{{Cache van SQL beschrijvingen}}}
De tweede cache betreft de beschrijving van SQL tabellen in databases. Deze beschrijvingen worden opgeslagen in de bestanden
tmp/cache/sql_desc*.txt
, met één bestand per database connector. Dit bestand wordt aangemaakt en gebruikt door de functie
base_trouver_table_dist()
die als basis dient voor verschillende PHP-functies met betrekking tot SQL-beschrijvingen zoals
table_objet()
,
id_table_objet()
en
objet_type()
.
Om dit cache-bestand opnieuw aan te maken, moet de functie
trouver_table()
expliciet worden aangeroepen zonder argument:
$trouver_table = charger_fonction('trouver_table','base');
$trouver_table();