Sie können eine eigene Cache Klasse definieren, die in der Datei "var/lib/Ego_Cache_custom.php" gespeichert ist. Sobald diese Datei existiert, können Sie für das verwendete Caching System "Kundenspezifisch" auswählen.
In dieser Datei muss die Klasse Ego_Cache_custom definiert werden. Diese sollte von einer existierenden Ego_Cache_* Klasse erben, um deren Funktionalitäten zu übernehmen. Im folgenden Beispiel wird von der Klasse Ego_Cache_apcu geerbt und die eigene Cache Klasse verhält sich somit wie das APCu Caching System.
require 'base/Ego_Cache_apcu.php';
class Ego_Cache_custom extends Ego_Cache_apcu {
// ...
}
Sie können nun einzelne oder alle verfügbaren Methoden der geerbten Klasse individuell anpassen und erweitern.
Sollten Sie eine vollständig eigene Cache Klasse nutzen wollen, empfiehlt es sich von der Klasse Ego_Cache zu erben
require 'base/Ego_Cache.php';
class Ego_Cache_custom extends Ego_Cache {
// ...
}
Bitte achten Sie darauf, alle öffentlichen Methoden zu überschreiben, wenn Sie von Ego_Cache erben. Andernfalls setzen Sie ein gemischtes Caching System ein, das unerwartete Effekte auslösen kann. Nehmen Sie sich dazu die originale Klasse zum Vorbild (liegt im Verzeichnis "lib/base/").
Folgende Methoden sollten überschrieben werden:
- setPath($path): setzt den Cache Pfad für dieses Cache Objekt. Das EGOCMS erzeugt mehrere Cache Objekte mit unterschiedlichen Pfaden.
- getPath(): ermittelt den Cache Pfad.
- getLastChanged(): ermittelt das Datum der letzten Änderung für diesen Cache Pfad.
- set($key, $val): setzt einen Cache Eintrag.
- get($key): ermittelt einen Cache Eintrag.
- reset(): setzt die Cache für diesen Cache Pfad zurück (normalerweise wird hier das Datum für getLastChanged() gesetzt).
- setExpire($expire): setzt das Ablaufdatum für diesen Cache Pfad.
- getExpire(): ermittelt das Ablaufdatum für diesen Cache Pfad.
- isExpired(): prüft ob das Ablaufdatum für diesen Cache Pfad erreicht ist.
- getEternal(): ermittelt das Ablaufdatum der "ewigen" Cache, falls vorhanden. Diese Cache wird für den Liveabgleich verwendet und verhindert, dass die Cache gelöscht werden kann, während ein Liveabgleich läuft. Normalerweise wird dieses Ablaufdatum im Konstruktor gesetzt, wenn die Datei "var/cache/eternal" existiert. Sollten Sie den Konstruktor überschreiben, wird empfohlen den originalen Konstruktor weiterhin aufzurufen.