Стандартный механизм настройки окружения описан тут. Простой он как двери в милиции, оп...
Стандартный механизм настройки окружения описан
тут. Простой он как двери в милиции, опирается на ответ
gethostname() и выглядит вот так
$env = $app->detectEnvironment([
'env-one-name' => array('hostname1.local'),
'env-two-name' => array('hostname2')
]);
Все удобно, понятно. Одно "но" заключается в том, что на одном хосте при таких условиях два окружения не потестируешь. Решение я предлагаю такое
$env = $app->detectEnvironment(function(){
// by path
if (stristr(__DIR__, 'demo-env-folder-name')) {
return 'demo';
}
// by hostname
$hostname = gethostname();
switch ($hostname) {
case "hostname1.local":
return 'env-one-name';
break;
case "hostname2":
return 'env-two-name';
break;
default:
return 'production';
break;
}
});
Таким образом будем в текущем пути искать название папки для выбранного окружения, то есть для папки
/the/path/to/project/demo-env-folder-name будет включено окружение
demo, а для других папок будет использоваться определение по хосту, то есть оригинальное. Конечно, есть определенная опасность словить не то окружение после переноса проекта третьими гражданами (которые не в курсе таких поворотов сюжета), но оповещение коллег о таких вещах я считаю должно быть на совести разработчиков. Да и поправить если что легко.