2016-03-22 50 views
3

如何將外部環境變量設置爲數組?作爲數組的外部環境變量

如果我有環境變量

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

我找到了解決方案。那就是:

在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