我知道env变量只是字符串。Symfony 3.4 supports env variables type casting。有没有办法通过int validator传递null值?
.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变量“DATABASE_PORT”不能强制转换为int。“或“无效的env(?int:DATABASE_PORT)name:只允许“word”字符。“
在yml中,有~或null符号用于传递null,e。g:
app.connection.port: ~
2条答案
按热度按时间kxxlusnw1#
有人在doc里问:
是否有可能定义自己的操作符?比如
%env(myDecoder:API_PASSWORD)%
,它将环境值解密为可用的值。答案是:
是的,您只需要创建一个实现
EnvProviderInterface
的服务,并将其标记为container.env_provider
。您可以创建一个运算符来接受
null
作为int
kt06eoxx2#
尝试使用fallback参数: