<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.available-resources.cachemanager">
    <title>Zend_Application_Resource_Cachemanager</title>

    <para>
        <classname>Zend_Application_Resource_Cachemanager</classname> kann verwendet werden um ein
        Bündel von <classname>Zend_Cache</classname> Optionen zu setzen die verwendet werden sollen
        wenn Caches lazy geladen werden bei der Verwendung von
        <classname>Zend_Cache_Manager</classname>
    </para>

    <para>
        Da der Cache Manager ein Lazy Loading Mechanismus ist, werden die Optionen auf Options
        Templates übersetzt welche verwendet werden um ein Cache Objekt auf Anfrage zu
        initialisieren.
    </para>

    <example id="zend.application.available-resources.cachemanager.configExample">
        <title>Beispiel einer Cachemanager Ressource Konfiguration</title>

        <para>
            Anbei ist eine Beispiel <acronym>INI</acronym> Datei die zeigt wie
            <classname>Zend_Cache_Manager</classname> konfiguriert werden kann. Das Format ist der
            Präfix der Cachemanager Ressource (<property>resources.cachemanager</property>) gefolgt
            von dem Namen der einer Cache Template/Bündel Option zugeordnet werden soll (z.B.
            <property>resources.cachemanager.database</property>) und letztendlich gefolgt von einer
            typischen <classname>Zend_Cache</classname> Option.
        </para>

        <programlisting language="ini"><![CDATA[
resources.cachemanager.database.frontend.name = Core
resources.cachemanager.database.frontend.customFrontendNaming = false
resources.cachemanager.database.frontend.options.lifetime = 7200
resources.cachemanager.database.frontend.options.automatic_serialization = true
resources.cachemanager.database.backend.name = File
resources.cachemanager.database.backend.customBackendNaming = false
resources.cachemanager.database.backend.options.cache_dir = "/path/to/cache"
resources.cachemanager.database.frontendBackendAutoload = false
]]></programlisting>

        <para>
            Das Empfangen dieses Caches vom Cache Manager ist in Wirklichkeit so einfach wie
            der Zugriff auf eine Instanz des Managers (<classname>Zend_Cache_Manager</classname>)
            was von <classname>Zend_Application_Resource_Cachemanager</classname> empfangen wird
            beim Aufruf von <command>$cacheManager->getCache('database');</command>. Das folgende
            Beispiel ist von einem Controller genommen bei dem auf die Bootstrap Klasse als Front
            Controller Parameter zugegriffen werden kann (welcher automatisch wärend des
            bootstrappens zugeordnet wird). Wie man sehen kann implementiert die Cache Manager
            Ressource eine <methodname>getCacheManager()</methodname> Methode um die ge-bootstrappte
            Instanz von <classname>Zend_Cache_Manager</classname> zu erhalten.
        </para>

        <programlisting language="php"><![CDATA[
$manager = $this->getFrontController()
            ->getParam('bootstrap')
            ->getResource('cachemanager')
            ->getCacheManager();
$dbCache = $manager->getCache('database');
]]></programlisting>

        <para>
            Siehe auch die Methode <methodname>Zend_Cache::factory()</methodname> um eine
            Beschreibung der Standardwerte zu bekommen welche man zuordnen kann wenn ein Cache
            über eine Konfigurationsdatei konfiguriert wurde wie im obigen Beispiel einer
            <acronym>INI</acronym> Datei.
        </para>
    </example>
</sect2>
