Изменения в .env от ноября 2018-го и как обновиться

Дата обновления перевода 2021-07-20

Изменения в .env от ноября 2018-го и как обновиться

В ноябре 2018-го, было внесено несколько изменений в основные рецепты Symfony, связанные с файлом .env. Эти изменения делают работу с переменными окружений проще и более согласованной - особенно при написании функциональных тестов.

Если ваше приложение было создано до ноября 2018 года, ему не требуется никаких изменений для продолжения работы. Однако, когда/если вы готовы воспользоваться преимуществом этих улучшений, вам понадобится сделать несколько небольших обновлений.

Что именно изменилось?

Но для начала, что же изменилось? На высшем уровне - не многое. Вот итог наиболее важных изменений:

  • A) Файл .env.dist больше не существует. Его содержание должно быть перемещено в ваш файл .env (см. следующий пункт).
  • B) Файл .env теперь отправляется в ваше хранилище. Раньше он игнорировался через файл .gitignore (обновленный рецепт не игнорирует этот файл). Так как этот файл отправляется, он должен содержать нечувствительные значения по умолчанию. .env можно рассматривать как предыдущий файл .env.dist.
  • C) Файл .env.local теперь может быть создан, чтобы переопределять значения в .env для вашей машины. Этот файл игнорируется в новом .gitignore.
  • D) При тестировании, ваш файл .env теперь читается, что делает его согласованным со всеми другими окружениями. Вы также можете создать файл .env.test для переопределений тестового окружения.
  • E) Еще одно изменение было сделано в январе 2020-го, которое означает, что ваши файлы .env загружаются всегда, даже если вы установите переменную окружения APP_ENV=prod. Цель заключается в том, чтобы файлы .env определяли значения по умолчанию, которые вы можете переопределить, если хотите, на реальзные значения окружения.

Есть еще несколько улучшений, но это - самые важные. Чтобы воспользоваться их преимуществами, вам нужно будет изменить несколько файлов в вашем существующем приложении.

Updating My Application

If you created your application after November 15th 2018, you don't need to make any changes! Otherwise, here is the list of changes you'll need to make - these changes can be made to any Symfony 3.4 or higher app:

  1. Обновите ваш файл public/index.php, чтобы добавить код файла public/index.php, предоставленного Symfony. Если вы персонализировали этот файл, убедитесь в том, что сохраняете эти изменения (но добавьте все другие изменения, сделанные Symfony).
  2. Обновите ваш файл bin/console, чтобы добавить код файла bin/console, предоставленного Symfony.
  3. Обновите .gitignore:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # .gitignore
      # ...
    
      ###> symfony/framework-bundle ###
    - /.env
    + /.env.local
    + /.env.local.php
    + /.env.*.local
    
      # ...
  4. Переименуйте .env в .env.local, а .env.dist в .env:

    1
    2
    3
    4
    5
    6
    7
    # Unix
    $ mv .env .env.local
    $ git mv .env.dist .env
    
    # Windows
    C:\> move .env .env.local
    C:\> git mv .env.dist .env

    Вы также можете обновить комментарий сверху в .env, чтобы отобразить новые изменения.

  5. Если вы используете PHPUnit, вам также понадобится создать новый файл .env.test и обновит ваш файл phpunit.xml.dist, чтобы он загружал файл tests/bootstrap.php.