如何
定义参数,以便由环境变量设置,但是当环境变量不存在时,它们不会导致错误。
换句话说,它们不是必需的参数,但由环境变量定义(如果存在(。
foo: '%env(resolve:MYFOO)%'
当环境变量MYFOO
不存在时,上面的示例将生成错误。
你可以像这样将默认值设置为 env vars:
parameters:
env(MYFOO): bar
foo: '%env(resolve:MYFOO)%'
如果需要添加更具体的逻辑,可以创建一个parameters_env.php
文件,以便加载环境变量并放入一些逻辑。
例如:
在 config/config.yml 中
imports:
- { resource: parameters.yml }
- { resource: parameters_env.php }
在配置/parameters_env.php
<?php
if (isset($_ENV['MYFOO'])) {
$container->setParameter('foo', getenv('MYFOO'));
}else{
//default value or load from another resource.
}