CakePHP中的不同环境?

时间:2012-01-26 19:06:27

标签: development-environment cakephp-2.0 production-environment

我想在CakePHP应用程序中拥有许多环境,

并为每个环境提供core.php文件,即

core-production.php和core-development.php。如何管理?

1 个答案:

答案 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核心读取文件的方式。

快乐的编码!