Skip to main content

前言

本教學將透過 revolution/laravel-console-starter 建置具備自訂 artisan 指令的 Laravel 應用程式。 使用此 starter kit 的好處:
  • 快速上手 — 無需複雜設定即可立即開始 console 應用開發
  • Laravel 生態系 — 可運用任務排程、資料庫、通知等 Laravel 豐富功能
  • Artisan 指令 — 透過 Laravel 強大的 Artisan 系統輕鬆建立與管理自訂指令
  • 易於測試 — 可用 Laravel 的測試框架撰寫指令測試

前置條件

請先安裝以下軟體。

專案設定

1

建立新專案

在終端機執行以下指令。
會建立 my-app 目錄,並設定 console 應用的基本結構。安裝時會自動執行:
  • .env.example 產生 .env
  • 透過 php artisan key:generate 設定應用程式金鑰
主要目錄結構:
2

確認環境設定

預設情況下,郵件寄送設定為輸出至 log(MAIL_MAILER=log)。若需要實際寄送郵件,請在 .env 檔中設定 Mailgun、Postmark、SES 等服務。

建立 Console 指令

1

產生指令

使用 make:command Artisan 指令建立新指令。
  • YourCommandName — 要建立的指令類別名稱(例:SendDailyReport
  • your:command — 指令呼叫名稱(例:report:send-daily
會產生 app/Console/Commands/YourCommandName.php
2

實作指令

編輯所產生的檔案實作邏輯。以下是 Hello World 指令範例。
$signature 定義指令的呼叫名稱,並在 handle() 方法中撰寫邏輯。
3

執行指令

執行後會在 storage/logs/laravel.log 與 console 輸出訊息。

透過 GitHub Actions 進行任務排程

使用 GitHub Actions 可以無需伺服器 cron job 就定期執行指令。
1

確認 workflow 檔案

Starter kit 已預先包含 .github/workflows/cron.yml
2

替換指令

php artisan inspire 替換為自己的指令。
若要執行多個指令:
3

調整排程

變更 cron 表達式來設定執行頻率。
4

以 secret 管理機密資訊

API 金鑰或密碼等機密資訊請使用 GitHub 儲存庫 secret。在 GitHub 儲存庫的 Settings > Secrets and variables > Actions 新增 secret,並於 workflow 中引用。

通知功能

可透過 Email、Slack 等通知指令的執行結果或錯誤。
1

建立通知類別

會產生 app/Notifications/TaskCompleted.php
2

設定通知頻道

視需要公開設定檔。
3

從指令發送通知

詳情請參考 Laravel 通知文件

實務應用範例

範例 1:網站存活監控與 Slack 警示

檢查網站是否上線,並於偵測到問題時向 Slack 發送警示的指令。
1

安裝 Slack 通知頻道

2

建立指令與通知

3

設定 Slack

.env 新增 Slack webhook URL。
更新 config/services.php
4

實作通知

編輯 app/Notifications/WebsiteDown.php
5

實作指令

編輯 app/Console/Commands/MonitorWebsites.php
6

於 GitHub Actions 排程

更新 .github/workflows/cron.yml

範例 2:加密貨幣投資組合更新與 Discord 通知

從 CoinGecko API 取得加密貨幣價格,並透過 Discord webhook 發送更新的指令。
1

安裝 Discord 通知頻道

2

建立指令與通知

3

設定 Discord

.env 新增 Discord webhook URL。
更新 config/services.php
4

實作並執行指令

詳細實作請參考 GitHub 儲存庫的教學

範例 3:網站內容抓取與郵件通知

從網站抓取內容並以 Email 傳送結果的指令。
1

建立指令與通知

2

設定郵件

.env 檔中加入郵件設定。
3

實作並執行指令

下一步

你已經了解使用 revolution/laravel-console-starter 建置 Laravel console 應用程式的基礎。 若要進一步深入學習:
  • 探索 Laravel 文件 — 於 Laravel 官方文件 了解可強化 console 應用的功能
  • 實作測試 — 以 Laravel 測試框架建立指令的測試,確保可靠度
  • 考慮套件開發 — 若在多個專案中會使用類似指令,可考慮發佈為可重複使用的 Laravel 套件
  • 掌握最新資訊 — 追蹤 Laravel News 或官方部落格,隨時掌握最佳實踐
最後修改於 2026年8月2日