Как указано в документации, Laravel 5 использует прохладно Система называется DotEnv. Это позволяет нам настраивать всевозможные переменные среды, которые будут доступны внутри проекта. Поскольку он может содержать ключи, его следует игнорировать в исходном коде.
Кроме того, поскольку его имя по умолчанию, каждый компьютер / разработчик должен иметь свой собственный .env
файл.
Здесь возникает проблема: во-первых, это частный проект. Так что я не против складывать ключи в хранилище. Во-вторых, из других фреймворков (Symfony? Yii?) Я привык иметь отдельные настройки для сред prod / stg / dev. Но так как файл уникален, это невозможно. Наконец, я не хотел связываться с производственной машиной.
Какой лучший способ настроить эти вещи?
Типично исключать .env
файл из вашего хранилища, используя .gitignore
файл, так что они могут быть настроены по-разному для разных сред.
Вы можете создать несколько .env
файлы и вручную загружать их в ваши промежуточные / тестовые / производственные среды. Вам нужно будет сделать это только один раз и изменить настройки в зависимости от среды.
Будучи на месте, будущие развертывания из вашего хранилища не будут развертывать ваши .env
файлы и ваши среды будут иметь отдельные конфигурации.
Прошли годы, и после некоторого опыта я могу сказать, что оба подхода (игнорируемые и не игнорируемые) в env-файлах имеют свои плюсы.
Наилучшим подходом для Laravel для частных проектов является сохранение общих ключей в .env.example
вместе со здравыми значениями по умолчанию (такими как APP_ENV=prod
или же APP_DEBUG=false
) и оставьте разработчику, устанавливающему проект, задачу по настройке некоторых из этих переменных и тех, которые пусты (т. е. ведение журнала каналов или личных ключей).