2011-01-13 67 views
2

如何禁用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

回答

4

嘗試

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

1

和你一樣,我沒有看到明顯的方法來禁用在父節中註冊的配置節中的插件。如果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