无法在本地配置中设置配置缓存选项?

时间:2015-05-15 16:06:20

标签: php zend-framework2

我正在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配置特定于环境的配置,而不是依赖于环境变量,配置缓存配置是否可以?

1 个答案:

答案 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();