什麼是 Artisan
Artisan 是 Laravel 隨附的命令列介面(CLI)工具。 它以專案根目錄的artisan script 存在,提供多個能有效率地進行開發、運維的指令。
要確認可用指令清單,使用 list 指令。
help。
若使用 Laravel Sail,請以
sail artisan 代替 php artisan。
指令會於 Docker 容器內執行。Tinker
Laravel Tinker 是可於命令列上互動式操作 Eloquent 模型、Job、事件等整個應用程式的 REPL 環境。建立自訂指令
產生指令
以make:command 產生指令類別範本。
app/Console/Commands/ImportProducts.php。
指令的基本結構
產生的指令類別具有$signature、$description、handle() 3 個主要要素。
於 Laravel 13 也可使用 PHP Attribute 的寫法。
引數與選項的定義
於$signature 一併定義指令名稱、引數、選項。
引數與選項的取得
於handle() 方法內以 argument() 與 option() 取得值。
input() — 型別化的存取子
使用 input() 方法,可以與 HTTP Request 相同的型別化存取子取得指令的引數或選項。
與使用者的互動
訊息的輸出
備有輸出彩色訊息至 Console 的方法。對使用者的詢問
可以互動式地接收使用者輸入。進度條
於大量資料處理中可清楚顯示進度。實務使用情境
資料匯入指令
以下為從 CSV 檔匯入商品資料的實用指令範例。1
產生指令
2
實作指令
3
執行指令
定期維護指令
以下為刪除舊資料等定期執行的維護指令範例。與排程執行的組合
建立的指令可於routes/console.php 排程執行。
詳情請參考Task Scheduling。
指令的測試
可使用 Laravel 的測試功能驗證 Artisan 指令的行為。artisan() 方法可用的斷言方法範例:dev 指令
dev Artisan 指令將本地開發所需的多個 Process 於單一終端機視窗一併啟動。預設會平行執行 PHP 開發伺服器、Queue Worker、Pail 日誌監視、Vite 資產編譯。
concurrently 的 npm 套件管理 Process。各 Process 會被標示標籤與顏色區分,於終端機輸出可輕易辨識。若任一 Process 失敗,其他所有 Process 也會自動停止。
預設執行的 Process 如下。
vite process 會自動偵測所使用的 Node 套件管理器(npm、pnpm、Yarn、Bun)並使用適當的執行指令。dev process 的自訂
dev 指令執行的 Process 可以透過 DevCommands 類別自訂。通常於應用程式 AppServiceProvider 的 boot 方法內註冊。register 方法接收指令字串與任意的 Process 名稱。
php artisan 的 artisan 方法。
node 方法會前置偵測到之套件管理器的執行指令(如 npm run),nodeExec 方法會前置套件管理器的 exec 指令(如 npx)。
blue、purple、pink、orange、green、yellow。也可對 color 方法傳入自訂的 hex 色碼。
dev process 而不實際啟動,可使用 dev:list 指令。
dev process 的過濾
使用 only 方法可指定於執行 dev 指令時僅啟動特定 Process。同樣地,可用 except 方法排除特定 Process。