PostgreSQL
coub
css
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
python
task1
ubuntu
vim
virtualbox
анекдот
игры
интересно
музыка
стихи
цитаты
laravel
You have to
login
to post a new comment.
Laravel: разные окружения на одном хосте / multi env on one host
November 17, 2014
Стандартный механизм настройки окружения описан тут. Простой он как двери в милиции, опирается на ответ 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, а для других папок будет использоваться определение по хосту, то есть оригинальное. Конечно, есть определенная опасность словить не то окружение после переноса проекта третьими гражданами (которые не в курсе таких поворотов сюжета), но оповещение коллег о таких вещах я считаю должно быть на совести разработчиков. Да и поправить если что легко.
Comments
No comments here yet.