Laravel Artisan 命令行:参数和选项的区别 3 个改进

问题

对于一个 Artisan 命令,参数和选项有什么区别?

回答

在回答参数和选项有什么区别之前,先重温一下什么是参数,什么是选项。

假如我们要用 Artisan 的 make:command 命令生成一个 HashMD5Command 命令类,并指定命令名为 hash:md5,执行以下命令:

$ php artisan make:command HashMD5Command --command=hash:md5

其中 HashMD5Command 就是参数(argument),--command=hash:md5 就是选项(option)。

看一下 make:command 命令的帮助信息,有助于我们更好地理解参数和选项:

参数和选项的区别

参数和选项的区别

输入时的不同

在执行命令时,参数必须严格按定义时的顺序输入,不需输入参数名,只需输入参数的值即可。输入选项则必须带选项名,且选项名前须加 -- 前缀(选项简写字母前加 -),选项可按任意顺序输入。

定义方式的不同

参数与选项的定义方式见参考部分给出的链接。

可选的不同

参数可以是可选的,但可选参数必须定义在必要参数之后,即以下定义方式是不允许的,可选参数 param2 不能放在必要参数 param3 之前:

command:name {param1} {param2?} {param3}

选项天生就是可选的,选项可以不带值,这时它是一个开关选项。选项还可以指定一个简写字母。

参考

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!