我想在CakePHP应用程序中拥有许多环境,
并为每个环境提供core.php文件,即
core-production.php和core-development.php。如何管理?
答案 0 :(得分:4)
如果我理解正确,您希望为每个位置加载不同的配置。管理此问题的最佳方法是根据服务器的位置建立custom configurations。
为此,您可以创建一个检查服务器名称的custom.php配置。
$domain = strtolower(@$_SERVER['SERVER_NAME']);
switch (true) {
default:
case 'production.domain.com' == $domain:
Configure::write('MyDomain.environment', 'production');
break;
case 'staging.domain.com' == $domain:
Configure::write('MyDomain.environment', 'staging');
break;
case 'local.domain.com' == $domain:
case 'mybox.com' == $domain:
Configure::write('MyDomain.environment', 'local');
break;
}
现在,在核心中,您可以根据您的环境配置设置:
switch (Configure::read('MyDomain.environment')) {
default: // for security; wouldn't want any confusion revealing sensitive information
case 'production':
Configure::write('debug', 0);
break;
case 'staging':
case 'local':
Configure::write('debug', 2);
break;
}
现在,您可以使用Configure::write('MyDomain.environment', x)
在任何地方配置所有内容,而无需修改CakePHP核心读取文件的方式。
快乐的编码!