Laravel Artisan 命令行:设定可选参数 1 个改进

设定可选参数

虽然大多数情况下,命令参数是必要的,但也有些时候,参数是可选的。下面我们介绍下如何定义可选参数。

定义语法

可选参数的定义语法与必要参数相似,只需在参数名后加个 ? 即表示是可选参数:

{参数名?}

可以给可选参数指定一个默认值:

{参数名=默认值}

注意:当给一个可选参数指定默认值时,就不用在参数名后加 ? 了。

也可包含参数说明:

{参数名? : 参数说明}

注意:

  • 分隔 参数名参数说明 的冒号两边必须加空格;
  • 可选参数必须定义在所有必要参数之后。

命令类中设定可选参数

在命令类中,命令参数与命令名、命令选项都是在 signature 属性中设置的。

protected $signature = 'command:name {param1} {param2?}';

闭包命令中设定可选 参数

在闭包命令中,命令参数与命令名、命令选项都是在 Artisan::command 方法的第一个参数中设置的。

Artisan::command('command:name {param1} {param2?}', function ($param1) {
    $param2 = $this->argument('param2');
});

注意:上面的例子中由于 param2 是个没有指定默认值的可选参数, 所以不能包含在闭包函数的参数中,而是在闭包函数内,通过 $this->argument() 方法来获取。

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!