🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 命令行选项设置 通常一个命令,除了参数,还可以有选项,顾名思义,选项对于用户来说总是可选的(可输可不输),用户在输入命令时,选项是以选项名前加两个连字符(--,如果设置了简写字母,则只要加一个 -)来表示的,且因为指定了选项名,所以指定选项的顺序是无关紧要的。 ### 1、定义语法 * 选项定义语法与参数定义语法的区别在于,选项名前要加两个连字符(--): `{--选项名}` * 上面是定义一个不带值的选项的语法。不带值的选项是个开关选项,如果用户输入命令时带有该选项,则该选项的值为 true, 否则为 false。如果要求用户必须为选项指定值,则需在定义时在选项名后加个 = 号: `{--选项名=}` * 可以为选项设置默认值,如果用户没有传递选项值,则使用设定的默认值: `{--选项名=默认值}` * 选项名简写,可以给完整选项名指定一个简写字母,两者之间以 | 分隔,在执行命令时,只要在简写字母前加一个 - 即可: `{--简写字母|选项名}` * 选项说明: `{--选项名 : 选项说明}` * 注意:分隔 选项名 与 选项说明 的冒号两边必须加空格; ### 2、命令类中设定命令选项 * 在命令类中,命令选项与命令名、命令参数都是在 signature 属性中设置的。 ``` protected $signature = 'command:name {param} {--O|option}'; ``` ### 3、闭包命令中设定命令选项 * 在闭包命令中,命令选项与命令名、命令参数都是在 Artisan::command 方法的第一个参数中设置的。 ``` Artisan::command('command:name {param} {--O|option}', function ($param, $option) { }); ```