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.
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 !