Zend_Cache Backends Es gibt zwei Arten von Backends: Standard und erweiterte. Natürlich bieten erweiterte Backends mehr Features. Zend_Cache_Backend_File Dieses (erweiterte) Backend speichert Cache Datensätze in Dateien (in einem gewählten Verzeichnis). Mögliche Optionen sind : File Backend Optionen Option Daten Typ Standardwert Beschreibung cache_dir String '/tmp/' Verzeichnis, in dem die Cache Dateien gespeichert werden file_locking Boolean TRUE Ein- oder Ausschalten von file_locking: kann die Beschädigung des Caches unter schlechten Bedingungen verhindern, aber es hilft nicht bei Multithreaded Webservern oder bei NFS Filesystemen... read_control Boolean TRUE Ein- oder Ausschalten von read_control: eingeschaltet wird ein Kontrollschlüssel im Cache File inkludiert und dieser Schlüssel wird mit dem Schlüssel verglichen, der nach dem Lesen berechnet wird. read_control_type String 'crc32' Typ der Schreibkontrolle (nur wenn read_control eingeschaltet ist). Mögliche Werte sind : 'md5' (bestes, aber am Langsamsten), 'crc32' (etwas weniger sicher, aber schneller, beste Wahl), 'adler32' (neue Wahl, schneller als crc32), 'strlen' um nur die Länge zu testen (schnellstes). hashed_directory_level Integer 0 Level der gehashten Verzeichnis Struktur: 0 heißt "keine gehashte Verzeichnis Strutur, 1 heißt "ein Level von Verzeichnissen", 2 heißt "zwei Levels"... Diese Option kann den Cache nur dann schneller machen, wenn viele Tausende Cache Dateien verwendet werden. Nur spezielle Messungen können helfen, den perfekten Wert zu finden. Möglicherweise ist 1 oder 2 ein guter Anfang. hashed_directory_umask Integer 0700 Umask für die gehashte Verzeichnis Struktur file_name_prefix String 'zend_cache' Präfix für Cache Dateien; man muss mit dieser Option sehr vorsichtig umgehen, weil ein zu generischer Wert in einem System Cache Verzeichnis (wie /tmp) kann beim Löschen des Caches zu großen Problemen führen. cache_file_umask Integer 0700 umask nach Cache Dateien metatadatas_array_max_size Integer 100 Interne maximale Größe für das Metadaten Array (dieser Wert sollte nicht geändert werden außer man weiß was man macht)
Zend_Cache_Backend_Sqlite Dieses (erweiterte) Backend speichert die Cache Datensätze in einer SQLite Datenbank. Mögliche Optionen sind : Sqlite Backend Optionen Option Daten Typ Standardwert Beschreibung cache_db_complete_path (mandatory) String NULL Der komplette Pfad (inklusive Dateiname) der SQLite Datenbank automatic_vacuum_factor Integer 10 Deaktiviert oder stellt den automatischen Vakuumprozess ein. Der automatische Vakuumprozess defragmentiert die Datenbankdatei (und verkleinert sie) wenn clean() oder delete() aufgerufen wird: 0 bedeutet kein automatisches Vakuum; 1 bedeutet systematisches Vakuum (wenn die delete() or clean() Methoden aufgerufen werden; x (integer) > 1 => automatisches Vakuum zufällig einmal pro x clean() oder delete() Aufrufe.
Zend_Cache_Backend_Memcached Dieses (erweiterte) Backend speichert Cache Datensätze in einem Memcached Server. memcached ist ein hoch-performantes, verteiltes Speicher Objekt Caching System. Um dieses Backend zu benutzen, wird ein Memcached Dämon benötigt und die Memcached PECL Erweiterung. Vorsicht: mit diesem Backend werden zur Zeit "Marker" nicht unterstützt genauso wie das "doNotTestCacheValidity=true" Argument. Mögliche Optionen sind : Memcached Backend Optionen Option Daten Typ Standardwert Beschreibung servers Array array(array('host' => 'localhost','port' => 11211, 'persistent' => true, 'weight' => 1, 'timeout' => 5, 'retry_interval' => 15, 'status' => true, 'failure_callback' => '' )) Ein Array von Memcached Servern; jeder Memcached Server wird durch ein assoziatives Array beschrieben : 'host' => (string) : Der Name des Memcached Servers, 'port' => (int) : Der Port des Memcached Servers, 'persistent' => (bool) : Persistente Verbindungen für diesen Memcached Server verwenden oder nicht 'weight' => (int) : Das Gewicht des Memcached Servers, 'timeout' => (int) : Das Timeout des Memcached Servers, 'retry_interval' => (int) : Das Wiederholungsintervall des Memcached Servers, 'status' => (bool) : Der Status des Memcached Servers, 'failure_callback' => (callback) : Der failure_callback des Memcached Servers compression Boolean FALSE TRUE wenn on-the-fly Kompression verwendet werden soll compatibility Boolean FALSE TRUE wenn man den Compatibility Modus mit alten Memcache Servern oder Erweiterungen verwenden will
Zend_Cache_Backend_Apc Dieses (erweiterte) Backend speichert Cache Datensätze im Shared Memory durch die APC (Alternativer PHP Cache) Erweiterung (welche natürlich für die Verwendung dieses Backends benötigt wird). Vorsicht: mit diesem Backend werden "Marker" zur Zeit nicht unterstützt genauso wie das "doNotTestCacheValidity=true" Argument. Es gibt keine Optionen für dieses Backend. Zend_Cache_Backend_Xcache Dieses Backend speichert Cache Einträge im Shared Memory durch die XCache Erweiterung (welche natürlich benötigt wird, damit dieses Backend verwendet werden kann). Achtung: Bei diesem Backend werden "tags" aktuell nicht unterstützt sowie das "doNotTestCacheValidity=true" Argument. Mögliche Optionen sind: Xcache backend options Option Daten Typ Standardwert Beschreibung user String NULL xcache.admin.user, notwendig für die clean() Methode password String NULL xcache.admin.pass (in offener Form, nicht MD5), notwendig für die clean() Methode
Zend_Cache_Backend_ZendPlatform Dieses Backend verwendet die Content Caching API des Zend Platform Produktes. Natürlich muss man die Zend Platform installiert haben, um dieses Backend verwenden zu können. Dieses Backend unterstützt Tags, aber nicht den CLEANING_MODE_NOT_MATCHING_TAG Löschmodus. Bei Definition dieses Backends muß ein Trennzeichen -- '-', '.', ' ', oder '_' -- zwischen den Wörtern 'Zend' und 'Platform' definiert sein wenn die Zend_Cache::factory() Methode verwendet wird: Es gibt keine Optionen für dieses Backend. Zend_Cache_Backend_TwoLevels Dieses (erweiterte) Backend ist ein Hybrides. Es speichert Cache Einträge in zwei anderen Backends: Ein schnelles (aber limitiertes) wie Apc, Memcache... und ein "langsames" wie File, Sqlite... Dieses Backend verwendet den Priority Parameter (der auf Frontend Level angegeben wird wenn ein Eintrag gespeichert wird) und den verbleibenden Platz im schnellen Backend um die Verwendung dieser zwei Backends zu optimieren. Dieses Backend sollte mit Verwendung eines Word Separators -- '-', '.', ' ', oder '_' -- zwischen den Wörtern 'Two' und 'Levels' spezifiziert werden wenn die Zend_Cache::factory() Methode verwendet wird: Vorhandene Optionen sind: TwoLevels Backend Optionen Option Datentyp Standardwert Beschreibung slow_backend String File Der "langsame" Backendname fast_backend String Apc Der "schnelle" Backendname slow_backend_options Array array() Die "langsamen" Backendoptionen fast_backend_options Array array() Die "schnellen" Backendoptionen slow_backend_custom_naming Boolean FALSE Wenn TRUE, wird das slow_backend Argument als kompletter Klassenname verwendet; wenn FALSE, wird das frontend Argument als Ende des "Zend_Cache_Backend_[...]" Klassennamens verwendet fast_backend_custom_naming Boolean FALSE Wenn TRUE, wird das fast_backend Argument als kompletter Klassenname verwendet; wenn FALSE, wird das frontend Argument als Ende des "Zend_Cache_Backend_[...]" Klassennamens verwendet slow_backend_autoload Boolean FALSE Wenn TRUE, wird kein require_once für das langsame Backend verwendet (nur für eigene Backends nützlich) fast_backend_autoload Boolean FALSE Wenn TRUE, wird kein require_once für das schnelle Backend verwendet (nur für eigene Backends nützlich) auto_refresh_fast_cache Boolean TRUE Wenn TRUE, wird der schnelle Cache automatisch refresht wenn ein Cache Eintrag getroffen wird stats_update_factor Integer 10 Ausschalten / Feintunen der Berechnung des Füll-Prozentsatzes des schnellen Backends (wenn ein Eintrag in den Cache gespeichert wird, die Berechnung des Füll-Prozentsatzes des schnellen Backends zufällig 1 mal bei x Cache Schreibvorgängen)
Zend_Cache_Backend_ZendServer_Disk und Zend_Cache_Backend_ZendServer_ShMem Diese Backends speichern Cacheeinträge indem Sie die Caching Funktionalitäten von Zend Server verwenden. Achtung: mit diesen Backends werden für den Moment "Tags" nicht unterstützt, wegen dem "doNotTestCacheValidity=true" Argument. Diese Backends arbeiten nur in einer Zend Server Umgebung für Seiten die über HTTP oder HTTPS angefragt wurden und nicht für Kommandozeilen Ausführung. Dieses Backend muß durch Verwendung des customBackendNaming Parameter mit TRUE spezifiziert werden wenn die Methode Zend_Cache::factory() verwendet wird: Es gibt keine Optionen für diese Backends.