我工作的一個項目ZF2和我的公共/ index.php文件就像如下:有沒有辦法在本地覆蓋ZF2的application.config.php指令?
<?php
chdir(dirname(__DIR__));
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
應用程序初始化過程中使用application.config.php開始,我知道,ZF2提供了很好的方式來覆蓋模塊配置本地通過文件名,如modulename.local.php,但不適用於application.config.php文件。
例如,在application.config.php我有一個module_listener_options鍵像如下:
return array(
'modules' => array(
// ...
),
'module_listener_options' => array(
'module_paths' => array(
// ...
),
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'config_cache_enabled' => TRUE,
'config_cache_key' => 'configuration_cache',
'cache_dir' => __DIR__ . '/../data/cache'
// ...
)
所以我想在本地禁用配置緩存在開發環境中工作一段時間,但我想打開它在一個生產環境,不需要部署後的技巧(如編寫自定義的git-hook/bash腳本等)。
另外我有一個APPLICATION_ENVIRONMENT
$_ENV
變量在所有服務器(開發,產品,測試)我不知道什麼是在ZF2中實現這一點的最佳方法。
我發現了Stephen Rees-Carter's article,是的解決方法這個問題,但我想學習是否有任何其他/更優雅的解決方案,不依賴於作曲家。
我認爲這是最簡單的解決方案。謝謝。 – edigu 2013-05-06 15:43:15
另外羅布艾倫寫了一篇關於同樣的問題和類似的方法的博客文章http://akrabat.com/zend-framework-2/caching-your-zf2-merged-configuration/ – edigu 2013-06-27 07:57:46