Как лучше настроить параметры производственной среды для проекта Laravel?

Как указано в документации, Laravel 5 использует прохладно Система называется DotEnv. Это позволяет нам настраивать всевозможные переменные среды, которые будут доступны внутри проекта. Поскольку он может содержать ключи, его следует игнорировать в исходном коде.

Кроме того, поскольку его имя по умолчанию, каждый компьютер / разработчик должен иметь свой собственный .env файл.
Здесь возникает проблема: во-первых, это частный проект. Так что я не против складывать ключи в хранилище. Во-вторых, из других фреймворков (Symfony? Yii?) Я привык иметь отдельные настройки для сред prod / stg / dev. Но так как файл уникален, это невозможно. Наконец, я не хотел связываться с производственной машиной.

Какой лучший способ настроить эти вещи?

2

Решение

Типично исключать .env файл из вашего хранилища, используя .gitignore файл, так что они могут быть настроены по-разному для разных сред.

Вы можете создать несколько .env файлы и вручную загружать их в ваши промежуточные / тестовые / производственные среды. Вам нужно будет сделать это только один раз и изменить настройки в зависимости от среды.

Будучи на месте, будущие развертывания из вашего хранилища не будут развертывать ваши .env файлы и ваши среды будут иметь отдельные конфигурации.

0

Другие решения

Прошли годы, и после некоторого опыта я могу сказать, что оба подхода (игнорируемые и не игнорируемые) в env-файлах имеют свои плюсы.

Наилучшим подходом для Laravel для частных проектов является сохранение общих ключей в .env.exampleвместе со здравыми значениями по умолчанию (такими как APP_ENV=prod или же APP_DEBUG=false) и оставьте разработчику, устанавливающему проект, задачу по настройке некоторых из этих переменных и тех, которые пусты (т. е. ведение журнала каналов или личных ключей).

0

По вопросам рекламы [email protected]