symfony2控制台参数

kir*_*oid 12 console command-line-arguments symfony

我想为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的架构.

cor*_*vax 18

有可能的:

->addOption('arg', 'a', InputOption::VALUE_NONE)
Run Code Online (Sandbox Code Playgroud)
  • 我的:command => $input->getOption('arg') //false
  • 我的:命令--arg => $input->getOption('arg') //true
  • 我的:命令--arg = 5 => $input->getOption('arg') //5

  • 如果我错了,请纠正我,这是我第一次使用此方法,但我认为为了获得此结果,您必须使用InputOption :: VALUE_OPTIONAL作为第三个参数. (5认同)
  • 实际上,使用 InputOption::VALUE_NONE 会出现运行时异常:该选项不接受值。 (2认同)