外部环境变量为数组

时间:2016-03-22 11:36:45

标签: symfony

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

如果我有环境变量

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 

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。这是:

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