前言
在本教程中,我们将使用revolution/laravel-console-starter 构建一个包含自定义 artisan 命令的 Laravel 应用。
使用这个 starter kit 的好处:
- 快速搭建 —— 无需复杂配置,就能立即开始开发控制台应用
- Laravel 生态 —— 可以直接使用任务调度、数据库、通知等 Laravel 丰富的功能
- Artisan 命令 —— 借助 Laravel 强大的 Artisan 系统,轻松创建和管理自定义命令
- 易于测试 —— 可以用 Laravel 的测试框架为命令编写测试
前置条件
请先安装以下软件。- PHP
^8.3 - Composer(https://getcomposer.org/)
- Laravel Installer(
composer global require laravel/installer)
项目搭建
创建新项目
在终端中执行以下命令。这会创建
my-app 目录,并搭建好控制台应用的基础结构。安装时会自动完成:- 从
.env.example生成.env文件 - 执行
php artisan key:generate设置应用密钥
创建控制台命令
生成命令
通过
make:command Artisan 命令创建新命令。YourCommandName—— 要创建的命令类名(例如:SendDailyReport)your:command—— 命令的调用名(例如:report:send-daily)
app/Console/Commands/YourCommandName.php。用 GitHub Actions 做任务调度
借助 GitHub Actions,不用服务器上的 cron 任务,也能定期执行命令。通知功能
你可以通过邮件、Slack 等通道通知命令的执行结果或错误。详情请参考 Laravel 通知文档。
实用应用示例
示例 1:网站健康监控与 Slack 报警
一个用来检查网站是否在线、在检测到问题时向 Slack 发送报警的命令。示例 2:加密资产组合更新与 Discord 通知
一个用来从 CoinGecko API 获取加密资产价格、并通过 Discord webhook 推送更新的命令。实现命令并执行
详细实现请参考 GitHub 仓库中的教程。
示例 3:网站内容爬取与邮件通知
从网站爬取内容并通过邮件发送结果的命令。后续步骤
至此,你已经掌握了使用revolution/laravel-console-starter 构建 Laravel 控制台应用的基础。
若想进一步深入:
- 探索 Laravel 文档 —— 在 Laravel 官方文档 中查找能强化控制台应用的功能
- 实现测试 —— 使用 Laravel 的测试框架为命令编写测试,提高可靠性
- 考虑做成扩展包 —— 如果你要在多个项目中重用类似命令,可以考虑发布为可复用的 Laravel 包
- 保持信息更新 —— 关注 Laravel News 和官方博客,及时掌握最佳实践