在symfony中有条件地设置参数

时间:2017-06-13 12:08:56

标签: symfony

有没有办法根据某个条件设置symfony中的参数,例如:一个ENV var? 表达语言出现在我的脑海中,但它似乎只支持参数属性调用

config.yml:

parameters:
  env(CI): false
  ci: '%env(CI)%'
  database_host: "@=parameter(ci) ? 'localhost' : 'mysql'"

doctrine:
  dbal:
    connections:
      cms:
        host:     "%database_host%"

更新
在这种情况下表达式语言不起作用(目前达到SF 3.3)所以我使用了Oli的方法: get_params_from_env.php:

$container->setParameter('database_host', 'mysql');
if (getenv('CI')) {
    $container->setParameter('database_host', '127.0.0.1');
} 

1 个答案:

答案 0 :(得分:1)

将此行添加到config.yml:

imports:
    - { resource: get_params_from_env.php }

然后,在php文件中,使用:

<?php
$container->setParameter('app.dummy_var', getenv('DUMMY_VAR'));

您可以在“高级技巧”下阅读有关包含您自己的PHP文件的信息&#39;:http://symfony.com/doc/current/configuration/configuration_organization.html