14

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

  • my:command,这意味着类似my:command --arg=null
  • my:command --arg, 意思是my:command --arg=defalutValue
  • my:command --arg=someValue,这是完全明确的。

即,我希望该命令下的代码有两种工作模式:默认一种和带有附加参数的非默认模式,并且该 arg 应该具有默认值。

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

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

4

3 回答 3

20

有可能的:

->addOption('arg', 'a', InputOption::VALUE_NONE)
  • 我的:命令 =>$input->getOption('arg') //false
  • 我的:命令--arg =>$input->getOption('arg') //true
  • 我的:命令--arg=5 =>$input->getOption('arg') //5
于 2013-05-08T10:14:59.860 回答
1

corvax 的回答是不正确的并且不起作用。到今天为止,你只是无法实现这一点。

它甚至在控制台文档中有所说明:使用命令选项

另请参阅 GitHub 上的这些问题:

于 2016-03-03T09:58:28.267 回答
-3

Symfony2 有控制台组件,可以单独使用。您可以在此处查看文档。有关更多示例,您可以检查SensioGeneratorBundle 的实现

于 2012-04-11T15:42:51.530 回答