php artisanとは?使い方とコマンド一覧|最速チートシート&現場ノウハウ

Laravelのコマンド、「artisan」は、Laravel開発に欠かせないベストパートナーです。…とはいえ、コマンドが増え続ける中で「毎回ググる」「バージョン差で挙動が違う」「本番でキャッシュを壊しがち」——そんな小さなつまずきが積み重なっていませんか?

本記事は、最速で引けるチートシートと、現場で効くノウハウを一枚にまとめた“即戦力”となります。上から順に読み進めなくてもOK。冒頭の早見表でコマンドをコピペ → 必要に応じて詳解・レシピ・落とし穴へ飛ぶ使い方を想定しています(ブックマーク推奨です)。

カバー範囲は以下です。

  • 生成系(make:*)から DB(migrate/seed/rollback)キャッシュ(config/route/view)運用(queue/schedule/vendor:publish/storage:link) までをカテゴリ別に最短距離で。
  • やりたいこと別レシピ:デプロイ時の一連フロー、DB初期化の安全手順、キャッシュ更新の“正しい順番”。
  • 環境別の呼び出し:素の php artisan/Docker/Sail/(必要なら)Herd の実行例。
  • よくある落とし穴route:cache でのクロージャ問題、freshrefresh の選び分け、キャッシュ周りの事故防止チェック。

対象は、これから覚える人実務で毎日叩く人まで。

初心者には「まず覚える10コマンド」を、実務者には「本番で失敗しない手順」と「トラブル時の最短リカバリ」を提示します。
それでは、LaravelのArtisanを“迷わず・壊さず・速く”使うための決定版、はじめましょう。

php artisanとは

php artisanは、Laravelプロジェクトのルートディレクトリに標準で置かれるartisanスクリプトを、PHPのコマンドラインから呼び出す書き方です。php artisan <コマンド名>という形式で使い、ルーティングの確認、コントローラやモデルの雛形生成、データベースのマイグレーション、キャッシュのクリアなど、Laravel開発に必要な操作の大半をこの1つの入り口から実行できます。

実行するための前提は次の3つです。

  • PHPが利用できる環境であること(対応バージョンはLaravelのメジャーバージョンごとに異なるため、詳細は公式インストールガイドで確認)
  • composer installでvendor配下の依存パッケージが揃っていること
  • artisanファイルが存在するLaravelプロジェクトのルートディレクトリで実行すること(別の場所で実行すると「Could not open input file: artisan」エラーになります)

「artisan(アルチザン)」は英語で「職人」を意味し、Laravel公式ドキュメントでも「Laravelに標準搭載されたコマンドラインインターフェース」と説明されています。たとえば開発用サーバーを起動するphp artisan serve(詳細はserve — 開発サーバーを起動する)のように、日々の開発作業の大部分をこの1コマンドの入り口から行えます。まず何ができるか把握したい場合は、次の2つを実行すれば全体像がつかめます。

php artisan list
php artisan help <command>

listは利用可能な全コマンドの一覧、helpは指定したコマンドの引数・オプションの詳細を表示します。ここから先は、目的別によく使うコマンドをチートシート形式で紹介します。

まず覚える10コマンド(最速チートシート)

コマンド一覧 / ヘルプ

php artisan list
php artisan <command> -h

迷ったらまずここ。利用可能なコマンドの全体像と各コマンドの使い方を即確認できます(詳しくはartisan list — 利用可能なコマンド一覧を表示)。

ルートの確認

php artisan route:list      # ルート一覧(-v / -vvで詳細)

エンドポイントやミドルウェアの把握・デバッグに必須。

モデル / コントローラなどの生成(make系)

php artisan make:model Post -mcr   # モデル+migration/Controller/Resource
php artisan make:controller PostController --resource

雛形を一気に作って開発速度を底上げ。

暗号化キーの生成(初回セットアップ)

php artisan key:generate

新規プロジェクト作成直後に1度だけ実行し、.envAPP_KEYを生成します。本番環境で実行済みのアプリに対して再実行すると、既存のセッションや暗号化データが読めなくなるため注意してください。詳しいオプションと運用上の注意点はLaravelのAPP_KEYとは?key:generateの使い方・変更時の影響と安全な管理方法で解説しています。

マイグレーション実行・やり直し

php artisan migrate
php artisan migrate:rollback --step=1
php artisan migrate:fresh
php artisan migrate:refresh

スキーマを進める・戻す・作り直すの基本4点。freshrefresh の違いは後段で詳解。

シーディング(初期データ投入)

php artisan db:seed --class=DatabaseSeeder

テストやE2E前の下ごしらえに。

設定・ルート・ビュー・イベントのキャッシュ作成

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

本番デプロイ時の定番。起動やルーティング登録を高速化。config:cacheの詳しい挙動はconfig:cache — 設定ファイルをキャッシュするコマンドを参照してください。

まとめて最適化 / 一括クリア

php artisan optimize
php artisan optimize:clear

各種キャッシュの作成と全消しをワンショットで。

ストレージ公開

php artisan storage:link

public/storage へのシンボリックリンクを作成。公開ファイル配信の基本設定です。詳細はstorage:link — 公開ディスクとstorageフォルダをリンクするコマンドを参照してください。

パッケージ資産の公開

php artisan vendor:publish --tag=config

パッケージの設定・ビューなどをアプリ側へコピーしてカスタマイズ可能に。

Tinker / about(環境把握)

php artisan tinker
php artisan about --only=environment

REPLでモデル操作や小実験、現在の環境情報の素早い確認に。

実務レシピ #1:本番デプロイの安全手順(最短版)

php artisan down --render="errors::503"           # 任意:メンテ画面へ
php artisan migrate --force                       # 破壊的変更は必ず --force
php artisan optimize                              # config/route/view/event を一括キャッシュ
php artisan up

メモ:

実務レシピ #2:DBを“クリーンにやり直し”たい時

ゼロから作り直す(開発初期/検証)

php artisan migrate:fresh --seed

直前の変更だけ巻き戻して再実行(差分検証)

php artisan migrate:rollback --step=1
php artisan migrate

いったん全部戻して再実行(履歴を付け直す)

php artisan migrate:refresh --seed

判断のコツ:

  • テーブルごと全部捨てたい」→ fresh
  • 一部だけやり直したい」→ rollback --step
  • 履歴をリセットして作り直し」→ refresh

実務レシピ #3:キャッシュ更新の“正しい順番”

php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache
# すべてリセットしたい: php artisan optimize:clear

ポイント:

  • ルートや設定を変更したら再キャッシュが必要。挙動が怪しい時はまず optimize:clear
  • 開発中は route:cache を無理に使わない(毎回再生成が面倒)。本番で効果的。

環境別:Artisanの呼び出し

  • 素のPHP環境php artisan <command>
  • Docker/Sail./vendor/bin/sail artisan <command>sail artisan のエイリアスでも可)
  • Docker Compose(独自)docker compose exec app php artisan <command>
  • macOS Herdherd php artisan <command>(バージョン切り替え下での実行に便利)

逆引き早見(やりたいこと別)

APIの下地を一気に作る

php artisan make:model Post -mcr
php artisan make:request StorePostRequest
php artisan make:resource PostResource

認可(Policy)を作る

php artisan make:policy PostPolicy --model=Post

フォームバリデーションを整理する

php artisan make:request UpdatePostRequest

非同期処理(キュー)を仕込む

php artisan make:job GenerateReport
php artisan queue:work --tries=3
php artisan queue:restart

イベント駆動で後処理

php artisan make:event ReportGenerated
php artisan make:listener SendReportNotification --event=ReportGenerated
php artisan event:cache

パッケージの設定やアセットを取り込む

php artisan vendor:publish --tag=config

公開ストレージを有効化

php artisan storage:link

よくあるエラーと最短リカバリ

  • 「Unable to prepare route […] for serialization」
    ルートのクロージャ定義が原因。コントローラに置き換える → route:cache 再実行。
  • 「Target class […] does not exist」/クラスが見つからない
    名前空間やPSR-4のズレ。composer dump-autoload を実行、クラスの namespace を確認。
  • Seeder/Factory が見つからない
    Laravel 8+ は DatabaseSeeders 名前空間が既定。クラスの置き場所と namespace を合わせる。
  • 「Nothing to migrate」なのにテーブルが壊れている/差分が合わない
    迷ったら migrate:fresh --seed で白紙から作り直す(開発環境限定)。
  • ログ書き込み権限エラー
    storage / bootstrap/cache のパーミッションを見直し。Docker ではユーザ/グループIDの不一致に注意。

付録:カテゴリ別早見表

基本操作list / help / about
生成(make:*)model controller request resource factory seeder migration middleware job event listener policy rule cast
DBmigrate migrate:rollback migrate:refresh migrate:fresh db:seed
キャッシュ/最適化config:cache|clear route:cache|clear view:cache|clear event:cache|clear optimize optimize:clear
運用queue:work|retry|restart schedule:run storage:link vendor:publish
開発/診断serve test tinker env(.env表示は避ける運用を)

よくある質問(FAQ)

Q. php artisanを実行すると「Could not open input file: artisan」と表示される

A. Laravelプロジェクトのルートディレクトリ(artisanファイルが存在する場所)以外で実行すると発生します。cdでプロジェクトルートに移動してから再実行してください。それでも解決しない場合はcomposer installが完了しているか(vendorディレクトリが存在するか)を確認します。

Q. php artisanのバージョンを確認するには?

A. php artisan --versionでLaravelのバージョンを表示できます。使用しているPHP自体のバージョンはphp -v、Laravelプロジェクトの詳細な環境情報はphp artisan about --only=environmentでまとめて確認できます。

Q. PHPやLaravelのバージョンによって使えるartisanコマンドは変わる?

A. 変わります。パッケージの追加やLaravelのメジャーバージョンアップに伴ってコマンドが追加・非推奨になることがあります。手元の環境で正確に確認したい場合はphp artisan listの出力を見るか、公式リリースノートで該当バージョンの変更点を確認してください。

Q. DockerやLaravel Sail環境でもphp artisanは同じように使える?

A. コマンド名やオプションは同じですが、呼び出し方が変わります。Sailなら./vendor/bin/sail artisan <command>、独自のDocker Composeならdocker compose exec app php artisan <command>のように、PHPが動くコンテナ内でコマンドを実行する必要があります。詳しくは本記事内の「環境別:Artisanの呼び出し」を参照してください。

関連記事

まとめ

Artisanは、Laravel開発を「迷わず・壊さず・速く」進めるための中核ツールです。

まずは list-h で自走できる地図を持ち、make:* で雛形を量産し、migrate / seed / rollback を安全に回す基礎体力を固めましょう。キャッシュは本番で効く武器ですが、変更時は必ず再生成し、挙動が不安定なら optimize:clear で一度リセットするのが最短の復旧ルートです。

DBを白紙から作り直したいのか、直前の差分だけ検証したいのかで、freshrefresh/rollback を使い分ける判断軸を持つと事故が減ります。ルートをキャッシュするならクロージャ定義は避け、コントローラに寄せる——この一点だけでも運用の安定度は大きく変わります。

現場では「レシピ化」と「自動化」が成果を分けます。

本記事のチートシートをチームのドキュメントやCI/CDに組み込み、デプロイ時は migrate --force → optimize の一連手順をスクリプト化。Docker/Sail など環境別の呼び出しコマンドもテンプレート化して、誰が実行しても同じ結果になる状態を作っておくと、学習コストもヒューマンエラーも同時に下がります。

最後に、Artisanはバージョンで小さく進化し続けます。公式の更新を定期的に確認しつつ、自分たちの“よくある作業”をコマンド列として育てる。今日の一回を明日の定型にすることで、Laravel開発はもっと快適で再現性の高いものになります。