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

    <para>
        <classname>Zend_Application_Resource_Cachemanager</classname> pode ser
        utilizado para configurar um conjunto de <classname>Zend_Cache</classname> opção
        de pacotes para uso de caches de carregamento preguiçoso (lazy loading) usando
        <classname>Zend_Cache_Manager</classname>
    </para>

    <para>
        Cache Manager tem um mecanismo de carregamento preguiçoso (lazy loading), as opções são traduzidas
        para modelos e usados para instanciar um objeto em requisição.
    </para>

    <example id="zend.application.available-resources.cachemanager.configExample">
        <title>Exemplo de configuração do recurso Cachemanager</title>

        <para>
            Abaixo está um exemplo de arquivo <acronym>INI</acronym> mostrando como
            <classname>Zend_Cache_Manager</classname> pode ser configurado. O formato
            do recurso Cachemanager prefixo (<property>resources.cachemanager</property>)
            seguido do name a ser atribuído  para o modelo de cache ou pacote (e.g.
            <property>resources.cachemanager.database</property>) e finalmente seguido por uma
            típica <classname>Zend_Cache</classname> opção.
        </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>
            Atualmente recuperar esse cache do Cache Manager é tão simples como
            acessar uma instância do Manager (<classname>Zend_Cache_Manager</classname>)
            recuparada de <classname>Zend_Application_Resource_Cachemanager</classname> e
            chamando <methodname>Zend_Cache_Manager::getCache('database')</methodname>. O exemplo
            abaixo é tirado de um controlador onde a classe de Inicialização da aplicação (bootstrap) pode ser acessada como
            um parâmetro Front Controller (que é atribuído automaticamente durante a inicialização).
            Como vocẽ pode ver, o Recurso Cache Manager implementa um método
            <methodname>getCacheManager()</methodname> para recuperar uma instãncia
            de <classname>Zend_Cache_Manager</classname>.
        </para>

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

        <para>
            Veja método <methodname>Zend_Cache::factory()</methodname> para obter uma
            descrição dos valores padrão que você pode atribuir ao configurar um
            cache através de arquivo de configuração como exemplo <acronym>INI</acronym> acima.
        </para>
    </example>
</sect2>
