无法在本地配置中设置配置缓存选项?
Cant set config caching options in a local config?
我正在努力在 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
,则不会创建缓存文件。缓存是否发生在本地配置合并之前?我们的 sop 是为环境特定配置提供 *.local.php 配置,而不是依赖环境变量,配置缓存配置是否可能?
默认情况下,应用程序配置不支持使用 .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();
我正在努力在 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
,则不会创建缓存文件。缓存是否发生在本地配置合并之前?我们的 sop 是为环境特定配置提供 *.local.php 配置,而不是依赖环境变量,配置缓存配置是否可能?
默认情况下,应用程序配置不支持使用 .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();