我工作的一个项目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