I have an application built using Symfony 2.8. Now, the application config need to access an environment variable. This is not working in Symfony 2.8 (config.yml),
id: "%env(SOME_ID)%"
Is there a way to access it in config.yml file.
With Symfony 2.8, you can declare some external parameters from your server :
With Apache, with the SetEnv directive:
<VirtualHost *:80> ... SetEnv SYMFONY__DATABASE__USER user SetEnv SYMFONY__DATABASE__PASSWORD secret SetEnv SYMFONY__SOME_ID 1234 ... </VirtualHost>
With Nginx, with fastcgi_param directive:
server { ... location ~ ^/app\\.php(/|$) { ... fastcgi_param SYMFONY__DATABASE__USER user; fastcgi_param SYMFONY__DATABASE__PASSWORD secret; fastcgi_param SYMFONY__SOME_ID 1234 ... } }
These environment variables will be passed to the container, with some transformations:
SYMFONY__
prefix is removed __
are replaced with a period. So you can use them as is:
doctrine:
dbal:
driver: pdo_mysql
dbname: symfony_project
user: '%database.user%'
password: '%database.password%'
some_config:
id: '%some_id%'
You can also pass some PHP constants :
parameters:
some_id: "@=constant('SOME_ID')"
my_class.some_id: "@=constant('My_Class::SOME_ID')"
Hope that helps !
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.