2013-03-20 44 views
0

我是Zend的新手,我必须在以前完成的项目上工作才能添加一些功能。 以下是application.ini文件中的缓存规范。带有'cache_dir'消息的未捕获异常'Zend_Cache_Exception'必须是目录'

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,它工作正常。但是当我想要启动项目时发生以下错误。

未捕获的异常“Zend_Cache_Exception”有消息“的cache_dir必须是目录”

我试图找到在谷歌的一些答案,但没有一个解决方案的工作。请帮我解决一下这个。我在WAMP 2.1上工作

+0

做哟你有完整的堆栈跟踪? – Salman 2013-03-20 13:01:36

回答

0

不确定,但是如果您使用Zend Framework(1.8+)的“新”版本,则必须在application.ini中使用 CacheManager来设置缓存。

对于内存缓存它应该是这样的:

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'); 

或者anyhwhere在你的代码(我不喜欢这方式)

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

$myCache = $cacheManager->getCache('mycache'); 
相关问题