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”

我试图在谷歌中找到一些答案,但没有一个解决方案有效。请帮我解决一下这个。我在 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 回答