ZF3的文档和教程都说你应该在开发过程中在本地启用“开发模式”来禁用缓存。现在,这很好,当您使用composer development-enable
或*-disable
时,命令会复制/config/development.config.php.dist
,删除.dist
扩展名并将其放在dist文件旁边。
成功执行此操作会因该文件中的配置而禁用缓存。
但是,使用以下配置手动执行此操作时,运行终端命令时将禁用缓存 。但是,当运行终端命令 >>存在development.config.php
文件时,被禁用。
这是我的application.config.php
文件atm:
$env = getenv('APPLICATION_ENV'); // Expect null or "development"
return [
'modules' => require __DIR__ . '/modules.config.php',
'module_listener_options' => [
'module_paths' => [
'./module',
'./vendor',
],
'config_glob_paths' => [
realpath(__DIR__) . '/autoload/{{,*.}global,{,*.}local}.php',
],
'config_cache_enabled' => $env === 'development' ? false : true,
'config_cache_key' => 'application.config.cache',
'module_map_cache_enabled' => $env === 'development' ? false : true,
'module_map_cache_key' => 'application.module.cache',
'cache_dir' => 'data/cache/',
'check_dependencies' => $env === 'development' ? true : false,
],
];
刚刚删除了所有评论,将其全部捆绑在一起,将其排除在外,并根据服务器环境变量设置true/false
。
我正在使用Apache,所以下面的vhost配置有效:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/skeleton"
ServerName skeleton.loc
SetEnv APPLICATION_ENV "development"
</VirtualHost>
我已通过调试确认了这一点:
问题是:为什么当我使用上一个手动路线时,缓存不会被禁用?
它会不断创建配置为在$env
不等于"development"
时创建的缓存文件。然而,它不应该是血腥的,这是造成很大挫折的原因。
(是的,现在我将通过Composer使用该设置,即拥有额外的配置文件,但我不应该这样做!)