делиться файлами .env с членами команды?

Только начинаю баловаться с laravel, и они поощряют использование .env файлов для разработки.

Рекомендуется не передавать эти файлы в систему управления версиями, чтобы, когда новый разработчик в вашей команде приступит к работе над проектом, у него не было этого файла.

Вопрос

Я что-то пропустил, или мы просто должны эффективно отправить настроенные файлы .env другим разработчикам по электронной почте, чтобы они могли зайти в свою копию проекта, чтобы они могли работать над ним, не выясняя детали базы данных и т. д. и добавляя в сами?? Особенно, когда вы можете использовать бродячую настройку с подготовкой, а данные базы данных идентичны, и они будут использовать один и тот же URL-адрес. Для них не нужно ничего настраивать, потому что вы используете контролируемую среду.

Спасибо


person Owen    schedule 08.01.2016    source источник


Ответы (2)


.env файл не рекомендую добавлять ни в какую VCS вместо этого можно создать например .env.example. И установите в этом файле все переменные, которые нужны вашему проекту. На самом деле, у Laravel есть этот файл, и вы можете отредактировать его и добавить в свою систему контроля версий. Когда в вашей команде появится новый участник, он просто скопирует .env.example в .env и установит значения в соответствии со своими настройками.

Изменить
Вы можете установить команду в своем composer.jsonфайле, после composer install скопировать .env.example в .env, где в вашем .env.example хранятся все ваши настройки.

 "post-install-cmd": [
        "php artisan clear-compiled",
        "php -r \"copy('.env.example', '.env');\"",
        "php artisan optimize"
    ],

Это дает вам возможность изменять значения, не влияя на настройки вашей команды.

person xAoc    schedule 08.01.2016
comment
Извините, что вы подразумеваете под CVS? - person Owen; 08.01.2016
comment
но вы бы не добавили конфиденциальные данные, такие как пароли mysql, в .env, а затем передали бы git, не так ли? - person Owen; 08.01.2016
comment
@xAoc это VCS - система контроля версий, я полагаю, что описывает контроль версий в целом. CVS – это специальная система контроля версий. - person Ben Swinburne; 08.01.2016
comment
конфиденциальные данные хранятся в файле .env, но каждая среда имеет различный доступ (пароль, IP-адрес) и т. д. Таким образом, каждая среда (производство, подготовка) имеет разные настройки. Вам ясно? - person xAoc; 08.01.2016
comment
@OwenMelbourne В файле .env.example хранятся ключи пар ключ-значение, которые необходимо заполнить. Каждый пользователь заполняет параметры, соответствующие его личной среде. Производственные системы должны правильно устанавливать переменные среды, а не файл. - person Ben Swinburne; 08.01.2016
comment
Я думаю, что все упускают суть моего вопроса, я знаю, что и как работают файлы .env. Я говорю о том, когда разработчик в вашей команде начинает работу, и вы все используете одни и те же бродячие настройки и т. д., поэтому все детали в нем идентичны, включая пользователя/пароль базы данных, как лучше всего поделиться ими, так что другой разработчику не нужно настраивать конфигурацию каждый раз, когда они загружают проект, например. может просто сделать как git clone repo.git && composer install или вы говорите, что каждый разработчик должен вручную заполнять этот файл каждый раз, когда они начинают работу над проектом, даже если их окружение идентично. - person Owen; 09.01.2016
comment
@OwenMelbournev, если у вас есть абсолютно идентичный файл .env и вы понимаете все риски, связанные с общим .env, просто поделитесь им со своей командой. Это не обязательное правило, это рекомендация. Но если бы я был, я бы создал .env.example с предопределенными значениями, а затем добавил еще одну команду для процесса установки. И общим будет что-то вроде: git clone repo.git && composer install && php -r "copy('.env.example', '.env');" - person xAoc; 09.01.2016

как заявил @xAoc, вы не должны включать это в управление версиями, поскольку оно может состоять из паролей и т. д., однако, если вы должны это сделать, просто удалите .env из файла .gitignore, и git не будет его игнорировать.

Удачи.

person Sari Yono    schedule 08.01.2016
comment
в соответствии с вашим обновленным вопросом сделайте это в своем файле .env.example - person Sari Yono; 08.01.2016