按可能不存在的环境变量定义参数

时间:2018-03-12 15:00:23

标签: symfony symfony4

如何定义参数以便它们由环境变量设置,但是当环境变量不存在时它们不会导致错误。

换句话说,它们是不需要的参数,但是当它们存在时由环境变量定义。

foo: '%env(resolve:MYFOO)%'

当环境变量MYFOO不存在时,上面的示例将生成错误。

1 个答案:

答案 0 :(得分:0)

您可以将默认值设置为env vars,如下所示:

parameters:
    env(MYFOO): bar
    foo: '%env(resolve:MYFOO)%'

如果您需要添加更多特定逻辑,可以创建一个parameters_env.php文件,以便加载环境变量并输入一些逻辑。

例如:

config / config.yml

imports:
    - { resource: parameters.yml }
    - { resource: parameters_env.php }

config / parameters_env.php

<?php 

if (isset($_ENV['MYFOO'])) {
    $container->setParameter('foo', getenv('MYFOO'));
}else{
    //default value or load from another resource.
}