2

如何在 cli 环境中禁用缓存?

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

在我的 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]

*<]:-)

4

2 回答 2

4

尝试

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

请参阅APIZF 参考指南中的$_options属性Zend_Cache_Core

于 2011-01-13T09:34:17.080 回答
1

像您一样,我看不到明显的方法可以禁用在父部分中注册的配置部分中的插件。如果Zend_Config_Ini允许多重继承会很酷,有点像 HTML 元素如何在 class 属性中拥有多个 CSS 类。(是吗?我猜不是)。然后你可以把插件注册放在一个部分[myplugsection],允许[production]扩展[myplug][cli]不允许,有点像 Doctrine 有actAs模板和行为。

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

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

只是大声思考...

干杯!

于 2011-01-13T10:58:07.990 回答