基于控制台命令参数的服务参数

时间:2015-09-25 09:39:01

标签: php symfony

我的情况是我有几个实体经理,如

  entity_manager_en
  entity_manager_us
  entity_manager_pl

每个实体经理都会引用具有不同语言内容的数据库。

我有命令,所需的参数是lang(语言)。 我也有作为构造函数参数需要实体管理器的服务。

是否有可能以某种方式根据命令中给出的lang创建动态实体管理器,并在创建时将其作为我的服务参数传递?

我尝试使用ConsoleCommandEvent但它在输入包含参数之前触发......

1 个答案:

答案 0 :(得分:0)

如果您希望在命令中使用execute方法调用实体管理器,您可以获取参数并将其添加到getManager()方法:

protected function execute(InputInterface $input, OutputInterface $output)
{
    $lang = $input->getArgument('lang');

    $em = $this->getContainer()->get('doctrine')->getManager('entity_manager_' . $lang);

    ...
}