2

Zendフレームワードバージョン1.11を使用しています

セッションを保存するために memcache を使用している私のサイトですが、より多くの zend キャッシュ ページを使用してページ html をキャッシュしたい

結果: キャッシュ ページ html は正しいキャッシュ ディレクトリ構成を保存せずパブリックパスを保存し、ファイル内のデータは null (0 KB)です。

仲間の助けになる

application.iniの私の設定

; MEMCACHE CONFIG
resources.cachemanager.memcached.frontend.name                            = Core
resources.cachemanager.memcached.frontend.options.automatic_serialization = On
resources.cachemanager.memcached.backend.name                             = Memcached
resources.cachemanager.memcached.backend.options.servers.one.host         = 10.60.80.51
resources.cachemanager.memcached.backend.options.servers.one.port         = 11211
resources.cachemanager.memcached.backend.options.servers.one.persistent   = On

; session savehandler class
resources.session.name = PHPGAME1_SESSION
resources.session.saveHandler.class        = Zend_Session_SaveHandler_Cache
resources.session.gc_maxlifetime           = 7200
resources.session.cookie_domain            = ".game5.vn"

;cofig cache page
resources.cacheManager.page.backend.options.public_dir = PUBLIC_PATH "/cached"
resources.cacheManager.pagetag.backend.options.cache_dir = WEB_PATH "/data/cache/tags"
resources.frontController.params.disableOutputBuffering = true
resources.cacheManager.page.backend.options.disable_caching = false

セッションハンドラーを初期化するためのブーストラップ

protected function _initSessionId()
{
    $opts = $this->getOptions();
    if (isset($opts['resources']['session']['saveHandler']['class']) &&
            'Zend_Session_SaveHandler_Cache' == $opts['resources']['session']['saveHandler']['class']) {
        $this->bootstrap('session');
        $cache = $this->bootstrap('cachemanager')
        ->getResource('cachemanager')
        ->getCache('memcached');
        Zend_Session::getSaveHandler()->setCache($cache);

    }                     
    $defaultNamespace = new Zend_Session_Namespace();
    if (!isset($defaultNamespace->initialized)) {
        Zend_Session::regenerateId();
        $defaultNamespace->initialized = true;
    }
}

initコントローラーでは、ヘルパーを使用してキャッシュページを保存し、キャッシュページを保存するアクションがあります

$this->_helper->cache(array('index'), array('content'));

どうもありがとう

4

1 に答える 1

1

解決済み

config に 2 つのセグメントがあります: cachemanager と cacheManager を組み合わせると、zend cache は最初のセグメント (cachemanager) のみを取得します

構成の成功:

; CACHE CONFIG
resources.cachemanager.memcached.frontend.name                            = Core
resources.cachemanager.memcached.frontend.options.automatic_serialization = On
resources.cachemanager.memcached.backend.name                             = Memcached
resources.cachemanager.memcached.backend.options.servers.one.host         = 127.0.0.1
resources.cachemanager.memcached.backend.options.servers.one.port         = 11211
resources.cachemanager.memcached.backend.options.servers.one.persistent   = On

; session savehandler class
resources.session.name = PHPGAME5_SESSION
resources.session.saveHandler.class        = Zend_Session_SaveHandler_Cache
resources.session.gc_maxlifetime           = 7200
resources.session.cookie_domain            = ".game5.vn"


; CACHE CONFIG
resources.cachemanager.page.backend.options.public_dir = PUBLIC_PATH "/cached"
resources.cachemanager.pagetag.backend.options.cache_dir = WEB_PATH "/data/cache/tags"
resources.frontController.params.disableOutputBuffering = true
resources.cachemanager.page.backend.options.disable_caching = false
resources.cachemanager.page.backend.options.cache_directory_umask = 0775
resources.cachemanager.page.backend.options.cache_file_umask  = 0775
于 2013-08-08T04:20:15.273 に答える