Symfony中可空的环境变量

时间:2018-04-04 08:38:05

标签: symfony environment-variables

我知道env变量只是字符串。 Symfony 3.4 supports env variables type casting。 有没有办法通过int验证器传递空值?

.ENV

DATABASE_PORT=
#I also tried DATABASE_PORT=null, DATABASE_PORT=~

parameters.yml

app.connection.port: '%env(int:DATABASE_PORT)%'
#I also tried env(?int, env(int?

我收到错误:“非数字env var”DATABASE_PORT“无法转换为int。”或“无效的env(?int:DATABASE_PORT)名称:只允许”单词“字符。”

在yml中有用于传递null的〜或空符号,例如:

app.connection.port: ~

1 个答案:

答案 0 :(得分:1)

有人在文档中问道:

  

是否可以定义自己的运营商?喜欢   %env(myDecoder:API_PASSWORD)%,它将解密环境   把价值变成可用的东西。

class MyDecoder implements EnvironmentOperator {
  public function resolve(string $value): string { 
    // magic stuff for decryption 
    return $value;
  }
}

答案是:

  是的,您只需要创建一个实现的服务   EnvProviderInterface并使用container.env_provider标记。

您可以创建一个接受null作为int

的运算符