ZF:在application.ini中禁用资源插件

问题描述:

如何禁用cli环境中的缓存?ZF:在application.ini中禁用资源插件

原因是,执行脚本的系统用户不允许写入缓存目录,因此脚本无法执行。

在我的application.ini我有

[production] 

resources.cachemanager.database.frontend.name = Core 
resources.cachemanager.database.frontend.customFrontendNaming = false 
resources.cachemanager.database.frontend.options.lifetime = 7200 
resources.cachemanager.database.frontend.options.automatic_serialization = true 
resources.cachemanager.database.backend.name = File 
resources.cachemanager.database.backend.customBackendNaming = false 
resources.cachemanager.database.backend.options.cache_dir = HTTPDOCS_PATH "/data/cache/database" 
resources.cachemanager.database.frontendBackendAutoload = false 

[cli : production] 

* <] :-)

+0

我在问如何在继承生产的CLI中禁用缓存。 – Phliplip 2011-01-13 09:30:36

尝试

resources.cachemanager.database.frontend.options.caching = false 

请参阅$_options财产APIZF Reference GuideZend_Cache_Core

+1

resources.cachemanager.database.frontend.options.caching = false resources.cachemanager.database.backend.options.cache_dir =“/ tmp” 解决了我的问题 - 谢谢! – Phliplip 2011-01-13 11:54:00

和你一样,我没有看到明显的方法来禁用在父节中注册的配置节中的插件。如果Zend_Config_Ini允许多重继承,就好像HTML元素在类属性中可以多个CSS类一样。 (是吗?我猜不是)。那么你可以把插件注册到一个部分[myplugsection],允许[production]扩展[myplug][cli]不,有点像教条有actAs模板和beahviors。

下一个最好的事情可能是创建一个名为类似[core]的部分,其中包含您现在在[production]中所拥有的大部分内容。 [production][cli]都可以延伸[core],但[production]会注册该插件,而[cli]则不会。

当然,另一种方法是将插件注册移动到Bootstrap,以便更好地控制插件注册。特别是,您可以拨打$front->unregisterPlugin(),其中$frontFrontController

只是想着大声.​​..

干杯!

+0

D'oh!刚刚意识到你正在谈论资源而不是插件。原则上,我概述的继承方案 - 使用`[core]`作为[cli]`和[[production]]的通用父节应适用于放入节中的任何内容,包括`resources。*` 。 – 2011-01-14 08:36:47