symfony2控制台参数

时间:2012-04-09 13:24:20

标签: symfony console command-line-arguments

我想为symfony命令创建一个命名的参数/选项。并希望symfony区分这3个选项:

  • my:command,意思是my:command --arg=null
  • my:command --arg,表示my:command --arg=defalutValue
  • my:command --arg=someValue,完全明确。

即。我想在该命令下使用两种工作模式:默认值为1,非默认值为附加参数,并且该arg应具有默认值。

我明白,我可以创建2个args,但我正在寻找一个arg-to-rule-them-all解决方案。

是否可以通过内置类实现这一目标,还是应该创建自定义类?如果解决方案仅适用于自定义类,请告诉我,从哪里开始(即“创建...的子类”或“安装名为...的包”),因为我不熟悉Symfony2的架构。

3 个答案:

答案 0 :(得分:18)

有可能:

->addOption('arg', 'a', InputOption::VALUE_NONE)
  • my:command => $input->getOption('arg') //false
  • my:command --arg => $input->getOption('arg') //true
  • my:command --arg = 5 => $input->getOption('arg') //5

答案 1 :(得分:1)

答案 2 :(得分:-3)

Symfony2有控制台组件,可以单独使用。您可以看到文档here。有关更多示例,您可以查看SensioGeneratorBundle的implementations