如何将外部环境变量设置为数组?如果我有环境变量
SYMFONY__NSQLOOKUPD__HOSTS=["localhost:4161"]
和config.yml中:
socloz_nsq: lookupd_hosts: %nsqlookupd.hosts%
然后我得到一个错误:
Invalid type for path "socloz_nsq.lookupd_hosts". Expected array, but got string
qyswt5oh1#
我找到了解决办法。这就是:在config.yml中,添加到导入部分:
imports: - { resource: parameters.php }
然后在config.yml所在的目录下创建parameters.php文件,并查看以下示例:
<?php $nsqlookupdhosts = getenv('SYMFONY__NSQLOOKUPD__HOSTS'); $nsqdhosts = getenv('SYMFONY__NSQD__HOSTS'); $container->setParameter('nsqlookupd.hosts.parsed', explode(',', $nsqlookupdhosts)); $container->setParameter('nsqd.hosts.parsed', explode(',', $nsqdhosts));
在环境变量中使用逗号作为分隔符(不限于使用逗号,可以使用任意分隔符)
SYMFONY__NSQLOOKUPD__HOSTS=localhost:4161,some.server:2222
q9yhzks02#
可以使用内置的“json”environment variable processor将JSON字符串解码为数组:
SYMFONY__NSQLOOKUPD__HOSTS='["localhost:4161"]' $nsqlookupdhosts: '%env(json:SYMFONY__NSQLOOKUPD__HOSTS)%'
2条答案
按热度按时间qyswt5oh1#
我找到了解决办法。这就是:
在config.yml中,添加到导入部分:
然后在config.yml所在的目录下创建parameters.php文件,并查看以下示例:
在环境变量中使用逗号作为分隔符(不限于使用逗号,可以使用任意分隔符)
q9yhzks02#
可以使用内置的“json”environment variable processor将JSON字符串解码为数组: