0

キャッシュが有効になっている複数のモジュールを持つアプリケーションに取り組んでいます。キャッシュの初期化は、アプリケーションのメイン ブートストラップで次のように行われます。

$this->bootstrap('cachemanager');
$manager = $this->getPluginResource('cachemanager')->getCacheManager();
$cacheObj   = $manager->getCache('database');
Zend_Registry::set('cacheObj', $cacheObj); 

特定のモジュールのキャッシュを無効にするにはどうすればよいですか?

4

1 に答える 1

2

キャッシュ オブジェクトのフェッチまたはキャッシュへの保存を無効にするには、オプションcachingを に設定しますfalse

オブジェクトを使用して、次のことができます。

$cacheObj = Zend_Registry::get('cacheObj');
if ($cacheObj instanceof Zend_Cache_Core) {
    $cacheObj->setOption('caching', false);
}

これを自動化するには、これを行うコントローラー プラグインを作成します。次に例を示します。

<?php
class Application_Plugin_DisableCache extends Zend_Controller_Plugin_Abstract
{
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {
        $module = $request->getModuleName();

        // change 'dont_cache_me' to the module you want to disable caching in
        if ('dont_cache_me' == $module) {
            $cacheObj = Zend_Registry::get('cacheObj');
            if ($cacheObj instanceof Zend_Cache_Core) {
                $cacheObj->setOption('caching', false);
            }
        }
    }
}
于 2012-10-10T19:39:00.583 に答える