Новое в Symfony 3.2: Переменные окружения

Переменные окружения становятся все более популярными для управления конфигурацией приложений. Они являются одним из основных понятий «12-факторного приложения». Их основные преимущества в том, что они могут быть изменены в результате процесса развертывания приложения без изменения кода, и что с ними не возникает проблем при публикации в репозитории.

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

В Symfony 3.2 добавлена полная поддержка переменных окружения. Первым изменением является то, что вам больше не придется указывать префикс SYMFONY__ для этих переменных. Второе изменение в том, что их значение теперь может быть изменено во время выполнения, так что приложение всегда будет использовать обновленное значение.

Для того, чтобы использовать переменную среды в любом конфигурационном файле Symfony, используйте новый синтаксис %env(VARIABLE_NAME)%:

# app/config/config.yml
doctrine:
    dbal:
        # ...
        password: "%env(DB_PASSWORD)%"

В предыдущем примере,  значение пароля к базе данных Symfony/Doctrine получает из значения переменной окружения DB_PASSWORD. Чтобы избежать ошибок в случае неопределенных переменных, для них можно определить значения по умолчанию для этих переменных с помощью синтаксиса окружения (variable_name): VARIABLE_VALUE:

# app/config/parameters.yml
parameters:
    env(DB_PASSWORD): s3cr3t_1234

Источник: https://symfony.com/blog/new-in-symfony-3-2-runtime-environment-variables

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5 + пятнадцать =