我正在zf2应用程序中设置配置缓存。将设置放在application.config.php中似乎工作正常......
// config/application.config.php
'module_listener_options' => array(
'module_paths' => array(
'./module',
'./vendor'
),
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php'
),
'config_cache_enabled' => true,
'config_cache_key' => 'my_cache_key',
'module_map_cache_enabled' => true,
'module_map_cache_key' => 'my_cache_key',
'cache_dir' => '/var/www/appsuite/html/data/cache/'
)
但如果我将这些相同的选项放在本地配置config/autoload/application.config.local.php
中,则不会创建缓存文件。在本地配置合并之前是否发生了缓存?我们的优点是使用* .local.php配置特定于环境的配置,而不是依赖于环境变量,配置缓存配置是否可以?
答案 0 :(得分:1)
默认情况下,应用程序配置不支持使用.local
和.global
命名约定。解决此问题的常用方法是使用记录here的环境变量。
但是,如果你想支持.local
命名约定,我们可以通过继续使用环境变量略微区别于该实现,但在index.php中执行类似的操作
if (getenv('APPLICATION_ENV') == 'development') {
$app_config = 'config/application.local.php';
} else {
$app_config = 'config/application.global.php';
}
Zend\Mvc\Application::init(require $app_config)->run();