Зміни в .env від листопада 2018 року та як оновитися

Дата оновлення перекладу 2022-12-12

Зміни в .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 визначали значення за замовчуванням, які ви можете перевизначити, якщо хочете, на реальні значення середовища.

Є ще декілька покращень, але це - найважливіші. Щоб скористатися їх перевагами, вам потрібно буде змінити декілька файлів у вашому існуючому додатку.

Оновлення мого додатку

Якщо ви створили ваш додаток пілся 15-го листопада 2018 року, вам не потрібно робити ніяких змін! В іншому випадку, ось список змін, які вам потрібно зробити - ці зміни можуть бути зроблені в будь-якому додатку Symfony 3.4 або вище:

  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.