Zwei verschiedene Möglichkeiten, die Zuordnung von einem Titel zu einer URL zu speichern. Das ergibt jeweils einen sehr simplen Cache für Variablen.
Zum einen APC:
function get_cached_title($url) {
return apc_fetch($url);
}
function cache_title($url, $title) {
return apc_store($url, $title);
}
Vom Code her ist das sehr einfach. Vorraussetzung ist aber die Installation von APC.
Die bei Serendipity gebotene Alternative ist die Nutzung von Cache_Lite. Diese Funktionalität wird mitgeliefert, installiert werden muss nichts. Dafür ist der Code etwas umfangreicher:
class ... {
var $cache = null;
var $cache_group = 'serendipity_specificplugin';
function ... {...
@include_once 'Cache/Lite.php';
if (!class_exists('Cache_Lite')) {
$this->debugMsg('Cache_Lite not available.');
return false;
}
$options = array(
'cacheDir' => $serendipity['serendipityPath'] . 'templates_c/',
'lifeTime' => 604800, //one week
'hashedDirectoryLevel' => 2,
'automaticCleaningFactor' => 200
);
$this->cache = new Cache_Lite($options);
$this->cache->_setFileName($url, $this->cache_group);
....
}
function get_cached_title($url) {
return $this->cache->get($url, $this->cache_group);
}
function cache_title($url, $title) {
return $this->cache->save($title, $url, $this->cache_group);
}
}
Ein ganzes Beispiel dafür findet man im cachesimple-Plugin.