Мы только что окунулись на работу и решили использовать Laravel во всех будущих крупных событиях. В настоящее время мы обсуждаем, как мы должны устанавливать переменные для dev
, testing
и live
. В моих личных проектах у меня есть такие вещи, как:
if(strpos(__FILE__,'/live/')) { $currentEnv = 'live'; } else { ... }
Затем я устанавливаю переменные с обратной стороны $currentEnv
. Laravel рекомендует использовать пользовательский .env
файл в корне каждой из ваших установок (что, я полагаю, означает, что это вне контроля версии) .
Может кто-нибудь, пожалуйста, скажите мне достоинства и ловушки каждого подхода
Файл .env – это настройки вашего приложения, в котором вы можете настроить переменную среды по умолчанию, проверьте следующий образец содержимого:
APP_ENV=local APP_DEBUG=true APP_KEY=AMpO3aZSVYhYKIAQyKch3G0efT3xGrve DB_HOST=localhost DB_DATABASE=test DB_USERNAME=test DB_PASSWORD=test CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
Если вы хотите работать локально, вы можете установить:
APP_ENV=local APP_DEBUG=true
В Production вы можете установить:
APP_ENV=production APP_DEBUG=false
использование .env имеет смысл, вы можете поместить туда что угодно, а затем использовать env () для получения значения из файла .env.
да, файл .env выходит за пределы контроля версий. вы также можете создать .env.testing для своей тестовой среды
вы также можете изменить конфигурацию по умолчанию в каталоге config / или добавить новый, а также использовать Config для извлечения этих значений.
http://laravel.com/docs/5.1#configuration http://laravel.com/docs/5.1/helpers#method-env