Про среды окружения

Переменные окружения в Symfony (или по английски это звучит как environment variables). Давайте разберемся, что это такое и зачем это может быть нужно?

Когда вы разрабатываете какое-то приложение на Symfony, оно может работать в разных средах. 

Если вы разрабатываете приложение на локальном сервере, эта среда будет называться средой разработки или development средой или сокращенно просто dev. В этой среде вы тестируете разрабатываемое вами приложение. Отлаживаете там ошибки и смотрите отладочную информацию. Проводите эксперименты, добавляете новые функции. Это среда разработки.

Когда приложение уже готово и вы готовы показать его посетителям вашего сайта, вы публикуете это приложение на удаленном сервере. Обычно это какой-то хостинг. Вы публикуете туда какие-то файлы и они будут доступны для посетителей вашего сайта. Эта среда называется production или производственная среда, где будет находиться уже конкретная рабочая версия проекта.

Среда разработки, где вы будете публиковать итоговые файлы вашего проекта называется среда prod (от production). 

Таким образом вашему приложению может быть нужно работать в разных средах, на разных компьютерах с разным программным обеспечением. На каждом из этих компьютерах может быть установлена разное программное обеспечение. установлены разные пароли и.т.д. 

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

Как устроены переменные окружения

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

Переменная окружения - это просто текстовая строка, которая располагается в обычном текстовом файле и выглядит следующим образом:

NAME_VAR = value

Большими латинскими буквами написано имя переменной, а после знака равно ее значение. Каждое слово отделяется символом нижнего подчеркивания.

Значение переменной может меняться, как и у любой переменной. 

Где это может понадобиться

  • Подключение к базе данных

В development и production средах данные для подключения к базе данных может отличаться. С помощью переменных окружения (environment variables), становиться возможным разделения данных для доступа к каждой из этих сред.

Для каждой из этих сред будут разные логин и пароли для соединения с базой данных.

  • Отправка электронной почты

В разных средах могут использоваться разные почтовые сервера. 

  • Хранилище для изображений

На локальном компьютере и на удаленном вы можете хранить изображения в разных местах.

Переменные окружения позволяют указывать различные настройки для разных сред, чтобы в каждой среде было свое значение для той или иной настройки. 

Переменные окружения - это способ сделать наше приложение независимым от той среды где оно работает. Значения переменных один раз задаются в каждой среде и потом можно об этом не беспокоиться.

Таким образом, мы в общих чертах познакомились со значениями переменных окружения (environment variables). В следующих видео давайте посмотрим как и где можно найти переменные окружения в вашем проекте Symfony, как их можно создавать, изменять и работать с ним.