我是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,它运行正常。但是当我想要启动项目时会发生以下错误。
未捕获的异常'Zend_Cache_Exception',消息'cache_dir必须是目录'
我试图在谷歌找到一些答案,但没有一个解决方案有效。请帮我解决一下这个。我在WAMP 2.1上工作
答案 0 :(得分: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');
代码中的或 anyhwhere (我不喜欢这种方式)
$cacheManager = Zend_Controller_Front::getInstance()
->getParam('bootstrap')
->getResource('cachemanager');
$myCache = $cacheManager->getCache('mycache');