0

私はZendが初めてで、以前に行ったプロジェクトに取り組んで機能を追加する必要があります。以下は、application.ini ファイルのキャッシュ仕様です。

cache.frontend.type = Core
cache.frontend.options.lifetime = 7200
cache.frontend.options.automatic_serialization = true
cache.frontend.options.cache_id_prefix = proj_name
cache.frontend.options.cache = true


cache.backend.type = Memcached
cache.backend.options.servers.1.host = 127.0.0.1
cache.backend.options.servers.1.port = 11211
cache.backend.options.servers.1.persistent = true
cache.backend.options.servers.1.weight = 1
cache.backend.options.servers.1.timeout = 5
cache.backend.options.servers.1.retry_interval = 15
logsdb.params.dbname = dataLink

memcache をインストールしましたが、正常に動作します。しかし、プロジェクトを開始しようとすると、次のエラーが発生します。

「cache_dir はディレクトリでなければなりません」というメッセージを含むキャッチされない例外「Zend_Cache_Exception」

Google でいくつかの回答を見つけようとしましたが、解決策はどれも機能しませんでした。これで私を助けてください。私はWAMP 2.1に取り組んでいます

4

1 に答える 1

0

確かではありませんが、「新しい」バージョンの Zend Framework (1.8+?) を使用している場合は、application.ini で CacheManager を使用してキャッシュをセットアップする必要があります。

memcache の場合、次のようになります。

resources.cachemanager.myache.frontend.name = Core
resources.cachemanager.mycache.frontend.options.automatic_serialization = On
resources.cachemanager.mycache.backend.name = Memcached

resources.cachemanager.mycache.backend.options.servers.1.host = 
resources.cachemanager.mycache.backend.options.servers.1.port = 1
resources.cachemanager.mycache.backend.options.servers.2.host = 
resources.cachemanager.mycache.backend.options.servers.2.port = 

そして、コントローラのどこかでキャッシュを取得します:

 $cacheManager = $this->getInvokeArg('bootstrap')->getResource('cachemanager');
      $myCache = $cacheManager->getCache('mycache');

またはコードのどこでも(私はこの方法が好きではありません)

$cacheManager = Zend_Controller_Front::getInstance()
                       ->getParam('bootstrap')
                       ->getResource('cachemanager');

$myCache = $cacheManager->getCache('mycache');
于 2013-03-20T14:54:34.047 に答える