Переменные окружения в Symfony
Любое приложение содержит конфигурацию, которая на каждом сервере разная. Это может быть информация о паролях, соединениях Data Bases и т. д. Каким же образом эти данные лучше хранить? В файлах? Либо существуют другие способы? Посмотрим, как обстоит дело с Symfony.
Первое, что важно отметить, — разработчики Symfony следуют лучшей практике индустрии, поэтому возможно хранение конфигурации, которая основана на сервере, в формате переменных окружения. Что это значит на практике? Да хотя бы то, что Symfony прекрасно работает с системами развертывания платформы, причем как с PaaS, так и с Docker.
Однако инсталляция переменных окружения в процессе разработки бывает очень непростой. Именно поэтому приложение загружает файл .env автоматически, делая это в том случае, если переменная окружения APP_ENV не инсталлирована в окружении. При этом ключи в данном файле впоследствии становятся переменными окружения и, соответственно, считываются приложением:
Поначалу содержание файла невелико. Однако с ростом приложения вы сможете расширить конфигурацию, если потребуется. Но на деле все гораздо интереснее. Представьте, что вашему приложению необходимо DB ORM. Для примера установим Doctrine ORM:
Теперь посмотрим на файл _.env _еще раз:
Итак, новая переменная окружения DATABASE_URL добавилась автоматически, при этом на нее уже ссылается новый конфигурационный файл doctrine.yaml. Если же объединить переменные окружения и Flex, вы получите в свое распоряжение лучшую практику индустрии, причем без дополнительных усилий.
По материалам https://symfony.ru/.