4

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

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

ядро-production.php и ядро-development.php. Как управлять им?

+0

В чем разница между файлами производства и разработки? Я просто управляю ими из того же core.php. – Wylie

+0

@Wylie Это автоматизирует выбор значений конфигурации и тем самым уменьшает вероятность ошибок и менее монотонную рабочую силу. –

ответ

3

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

Счастливое кодирование!

+1

Это лучший способ включить строки, которые я когда-либо видел. –

Смежные вопросы