我正在做一个 ZF2 项目,我的 public/index.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 ,是的,解决了这个问题,但我想了解是否有任何其他/更优雅的解决方案不依赖于 Composer 。
最佳答案
您可以在您的应用配置中测试您的环境变量并相应地设置缓存,例如,
<?php
// application.config.php
$env = getenv('APPLICATION_ENVIRONMENT');
$configCacheEnabled = ($env == 'production');
return array(
//..
'config_cache_enabled' => $configCacheEnabled,
//..
);
关于php - 有没有办法在本地覆盖 ZF2 application.config.php 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16214305/