Ссылка на вложенные параметры в файлах конфигурации Symfony 4
Я хотел бы иметь возможность использовать вложенные параметры, определенные в одном файле конфигурации в другом для примера
# config/config.yaml (my custom configuration file)
database:
driver: pdo_mysql
host: localhost
user: dev
password: dev
dbname: dev
Для использования в другом файле конфигурации
# config/packages/doctrine.yaml
url: 'mysql://%database.user%:%database.password%@%database.host%:%database.port%/%database.dbname%'
В настоящее время это не работает, так как я не уверен, как ссылаться на переменные в пакете Config ( https://symfony.com/doc/current/configuration.html)
1 ответ
Решение
Параметры являются просто плоскими элементами значения ключа и не могут быть вложенными. Это написано в документации Symfony
Вы должны определить отдельный ключ для каждого параметра. Соглашение состоит в том, чтобы использовать точку для разделения пространств имен. Точка не делает его массивом, но облегчает чтение.
database.driver: pdo_mysql
database.host: localhost
database.user: dev
database.password: dev
database.dbname: dev
Затем параметры доступны точно так, как вы хотите:
url: 'mysql://%database.user%:%database.password%@%database.host%:%database.port%/%database.dbname%'