Laravel通过$description、$help和$signature三个属性支持Artisan命令的描述与用法:$description提供60字内动词开头的简短说明,显示在list中;$help支持换行的详细用法示例,显示在help中;$signature定义参数结构并自动解析为帮助文本。

命令描述和用法信息是用户发现、理解和正确使用自定义 Artisan 命令的关键。Laravel 通过两个简单属性就能完整支持:一个是面向列表展示的简短描述,另一个是面向终端帮助系统的详细说明。
设置简洁明了的命令描述
在命令类中定义 $description 属性,它会在 php artisan list 输出中显示,用于快速识别命令用途。这个字符串必须是纯文本,不能含 PHP 表达式或变量。
- 写法示例:
protected $description = '发送每日运营报告给指定用户'; - 长度建议控制在 60 字以内,避免被截断
- 动词开头更清晰,比如“发送”“备份”“清理”,而不是“一个用于发送……的命令”
提供完整的命令用法说明
通过 $help 属性补充详细用法,它会在运行 php artisan help your:command 时显示。这里可以包含典型调用示例、参数含义、注意事项等。
- 写法示例:
protected $help = "此命令将生成 PDF 报告并邮件发送。\n\n示例:\n php artisan report:send john --queue\n php artisan report:send --type=daily --when=tomorrow"; - 支持换行和缩进,但不要用 HTML 或 Markdown 标签
- 可列出常见组合场景,帮助用户减少试错成本
签名本身也是用法的一部分
$signature 不仅是命令名,还直接定义了参数结构和选项规则,它本身就是最基础的“用法语法”。Laravel 会自动解析并展示在 help 输出里。
- 例如:
protected $signature = 'report:send {user?} {--queue} {--type=weekly}'; - 执行
php artisan help report:send后,系统会自动解释:{user?}是可选参数,{--queue}是布尔开关,{--type=weekly}是带默认值的选项 - 确保签名语义准确,比如必填参数不加
?,选项等号紧贴名称({--path=}✅,{--path =}❌)


















