symfony 外部环境变量作为数组

zpf6vheq  于 2022-11-30  发布在  其他
关注(0)|答案(2)|浏览(152)

如何将外部环境变量设置为数组?
如果我有环境变量

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
qyswt5oh

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
q9yhzks0

q9yhzks02#

可以使用内置的“json”environment variable processor将JSON字符串解码为数组:

SYMFONY__NSQLOOKUPD__HOSTS='["localhost:4161"]'

$nsqlookupdhosts: '%env(json:SYMFONY__NSQLOOKUPD__HOSTS)%'

相关问题