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