2013-03-20 54 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'); 
相關問題