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


如何

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

换句话说,它们不是必需的参数,但由环境变量定义(如果存在(。

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

最新更新