理解如何处理控制台参数和选项
编辑本页理解如何处理控制台参数和选项
ob娱乐下载Symfony控制台应用程序遵循同样的方法docopt在大多数CLI实用工具中使用的标准。本文解释了当命令定义带有必需值或没有值的选项时,如何处理边缘情况。读这是另一篇文章了解如何在Symfony控制台命令中使用参数和选项。ob娱乐下载
看看下面的命令,它有三个选项:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
名称空间Acme\控制台\命令;使用ob娱乐下载\组件\控制台\命令\命令;使用ob娱乐下载\组件\控制台\输入\InputArgument;使用ob娱乐下载\组件\控制台\输入\InputDefinition;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输入\InputOption;使用ob娱乐下载\组件\控制台\输出\OutputInterface;类DemoArgsCommand扩展命令{受保护的静态$defaultName=“演示:args”;受保护的函数配置(){$这->setDescription (“描述参数行为”)->setDefinition (新InputDefinition ([新InputOption (“foo”,“f”),新InputOption (“酒吧”,“b”, InputOption::VALUE_REQUIRED),新InputOption (“猫”,“c”, InputOption::Value_optional),]));}受保护的函数执行(InputInterface$输入, OutputInterface$输出){/ /……}}
自喷火
选项不接受值,它也会接受假
(当它没有传递给命令时)或真正的
(当——foo
由用户传递)。的值酒吧
选项(及其b
分别快捷方式)是必需的。它可以用空格或与选项名分隔=
字符。的猫
选项(及其c
快捷方式)的行为类似,除了它不需要值。查看下表,了解传递选项的可能方式:
输入 | 喷火 |
酒吧 |
猫 |
---|---|---|---|
——酒吧=你好 |
假 |
“你好” |
零 |
——酒吧你好 |
假 |
“你好” |
零 |
- b =你好 |
假 |
”=你好” |
零 |
- b你好 |
假 |
“你好” |
零 |
-bHello |
假 |
“你好” |
零 |
-fcWorld -b你好 |
真正的 |
“你好” |
“世界” |
-cfWorld -b你好 |
假 |
“你好” |
“fWorld” |
-cbWorld |
假 |
零 |
“bWorld” |
当命令还接受一个可选参数时,事情就变得有点棘手了:
1 2 3 4 5 6
/ /……新InputDefinition ([/ /……新InputArgument (“参数”, InputArgument::可选)]);
你可能得用特价--
分隔符将选项与参数分开。看看下表中的第五个例子,它是用来告诉命令that世界
的值。参数
而不是可选选项的值猫
选择:
输入 | 酒吧 |
猫 |
参数 |
---|---|---|---|
——酒吧你好 |
“你好” |
零 |
零 |
——bar Hello World |
“你好” |
零 |
“世界” |
——bar "Hello World" |
“Hello World” |
零 |
零 |
——酒吧Hello——猫世界 |
“你好” |
“世界” |
零 |
——酒吧Hello——猫——世界 |
“你好” |
零 |
“世界” |
-b Hello -c World |
“你好” |
“世界” |
零 |
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。