在 Laravel 中自定义 Artisan 命令可通过返回整数设置退出代码:0 表示成功,非零表示错误,如 1 为通用错误、2 为参数错误,可在 shell 脚本中通过 $? 捕获并处理不同状态码以控制流程。

在 Laravel 中自定义 Artisan 命令时,可以通过返回一个整数来设置命令的退出代码。这个退出代码用于指示命令执行是否成功或遇到何种错误,常用于脚本自动化、CI/CD 流程等场景。
定义 Artisan 命令的退出代码
Laravel 的 Artisan 命令默认在 handle() 方法中执行逻辑。你只需从该方法返回一个整数值,即可作为该命令的退出状态码:
0 表示成功,非零值表示失败或特定错误类型。
例如:
“`phpnamespace AppConsoleCommands;
use IlluminateConsoleCommand;
通义灵码
阿里云出品的一款基于通义大模型的智能编码辅助工具,提供代码智能生成、研发智能问答能力
31 查看详情
class SendEmails extends Command{protected $signature = ’email:send’;protected $description = ‘Send example emails’;
public function handle(){ if (! $this->sendEmail()) { $this->error('Failed to send email.'); return 1; // 自定义退出代码:发送失败 } $this->info('Email sent successfully.'); return 0; // 成功执行}private function sendEmail(){ // 模拟邮件发送逻辑 return false; // 假设失败}
}
常见的退出代码约定
虽然你可以使用任意整数,但建议遵循 Unix 系统的惯例:
- 0:成功
- 1:通用错误
- 2:误用命令(如参数错误)
- 127:命令未找到
你也可以根据业务定义更细粒度的错误码,比如:
- 10:数据库连接失败
- 20:配置缺失
- 30:网络请求超时
在脚本中使用退出代码
当你在 shell 脚本中调用 Artisan 命令时,可以检查其退出状态:
```bashphp artisan email:sendif [ $? -eq 0 ]; then echo "Command succeeded"else echo "Command failed with exit code $?"fi这样可以根据不同的退出码触发重试、告警或终止流程。
基本上就这些。Laravel 会自动将 handle() 方法的返回值作为进程退出码,无需手动调用 exit()。只要合理设计返回值,就能实现清晰的命令执行反馈机制。
以上就是laravel怎么自定义一个 Artisan 命令的退出代码_laravel自定义Artisan命令退出代码方法的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/373696.html
微信扫一扫
支付宝扫一扫