我知道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: ~
答案 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