Artisanとは
ArtisanはLaravelに同梱されているコマンドラインインターフェース(CLI)ツールです。 プロジェクトルートのartisan スクリプトとして存在し、開発・運用を効率化する多数のコマンドを提供しています。
利用可能なコマンド一覧を確認するには list コマンドを使います。
help を先頭に付けます。
Laravel Sailを使っている場合は、
php artisan の代わりに sail artisan を使ってください。
コマンドはDockerコンテナ内で実行されます。Tinker
Laravel Tinker は、EloquentモデルやJob、イベントなど、アプリケーション全体をコマンドライン上でインタラクティブに操作できるREPL環境です。カスタムコマンドの作成
コマンドを生成する
make:command でコマンドクラスのひな型を生成します。
app/Console/Commands/ImportProducts.php が生成されます。
コマンドの基本構造
生成されたコマンドクラスには、$signature、$description、handle() という3つの主要要素があります。
Laravel 13ではPHPアトリビュートを使った書き方も利用できます。
引数とオプションの定義
$signature にコマンド名・引数・オプションをまとめて定義します。
引数とオプションの取得
handle() メソッド内で argument() と option() を使って値を取得します。
input() — 型付きアクセサ
input() メソッドを使うと、HTTPリクエストと同じ型付きアクセサでコマンドの引数やオプションを取得できます。
ユーザーとのインタラクション
メッセージの出力
コンソールに色付きのメッセージを出力するメソッドが用意されています。ユーザーへの問い合わせ
対話的にユーザーから入力を受け付けることができます。プログレスバー
大量データの処理中に進捗をわかりやすく表示できます。実用的なユースケース
データインポートコマンド
CSVファイルから商品データをインポートする実践的なコマンドの例です。1
コマンドを生成する
2
コマンドを実装する
3
コマンドを実行する
定期メンテナンスコマンド
古いデータの削除など、定期的に実行するメンテナンスコマンドの例です。スケジュール実行との組み合わせ
作成したコマンドはroutes/console.php でスケジュール実行できます。
詳細はタスクスケジューリングを参照してください。
コマンドのテスト
Laravelのテスト機能を使って、Artisanコマンドの動作を検証できます。artisan() メソッドで使えるアサーションメソッドの例:devコマンド
dev Artisanコマンドは、ローカル開発に必要な複数のプロセスを1つのターミナルウィンドウでまとめて起動します。デフォルトでは、PHP開発サーバー・キューワーカー・Pailによるログ監視・Viteのアセットコンパイルが並行して実行されます。
concurrentlyというnpmパッケージを使ってプロセスを管理しています。各プロセスはラベル付けされ色分けされるので、ターミナル出力でどのプロセスか簡単に区別できます。いずれかのプロセスが失敗すると、他のすべてのプロセスも自動的に停止します。
デフォルトで実行されるプロセスは以下の通りです。
viteプロセスは、使用しているNodeパッケージマネージャー(npm、pnpm、Yarn、Bun)を自動検出して適切な実行コマンドを使用します。devプロセスのカスタマイズ
devコマンドが実行するプロセスは、DevCommandsクラスを使ってカスタマイズできます。通常はアプリケーションのAppServiceProviderのbootメソッド内で登録します。registerメソッドはコマンド文字列と任意のプロセス名を受け取ります。
php artisanを前置してくれるartisanメソッドが使えます。
nodeメソッドは検出したパッケージマネージャーの実行コマンド(例: npm run)を前置し、nodeExecメソッドはパッケージマネージャーのexecコマンド(例: npx)を前置します。
blue、purple、pink、orange、green、yellowです。colorメソッドにカスタムのhexカラーを渡すこともできます。
devプロセスを実際に起動せず一覧表示したい場合は、dev:listコマンドを使います。
devプロセスのフィルタリング
onlyメソッドを使うと、devコマンド実行時に特定のプロセスだけを起動するよう指定できます。同様に、exceptメソッドで特定のプロセスを除外することもできます。