разные среды в CakePHP? - PullRequest
       37

разные среды в CakePHP?

4 голосов
/ 26 января 2012

Я хочу иметь много сред в моем приложении CakePHP,

и иметь файл core.php для каждой среды, т. Е.

core-production.php и core-development.php. Как это сделать?

1 Ответ

4 голосов
/ 27 января 2012

Если я правильно понимаю, вы ищете, чтобы загрузить различные конфигурации для каждого местоположения.Лучший способ справиться с этим - установить пользовательских конфигураций на основе расположения сервера.

Таким образом, для этого вы можете создать конфигурацию 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 читает файлы.

Удачного кодирования!

...