29.

Laravel Artisan コマンド一覧完全リファレンス

編集
この記事の要点
  • php artisan list で全コマンド表示、php artisan help で詳細
  • make: 系で controller / model / migration / seeder / factory / request / policy / middleware / job / event / listener を生成
  • DB 系migrate / migrate:rollback / migrate:fresh / db:seed
  • cache 系cache:clear / config:clear / view:clear / route:clear / optimize:clear
  • tinker で REPL、route:list で全ルート、serve で開発サーバ

Artisan とは

Laravel に同梱されているコマンドラインインターフェース。プロジェクトルートで php artisan を実行すると全コマンドが一覧されます。

php artisan list                  # 全コマンド一覧
php artisan help make:controller  # 特定コマンドのヘルプ
php artisan --version             # Laravel バージョン
php artisan about                 # 環境情報 (Laravel 9+)

make: 系コマンド (生成)

コマンド生成物主オプション
make:controller Fooapp/Http/Controllers/FooController.php--resource / --api / --invokable
make:model Postapp/Models/Post.php-mfsc (migration/factory/seeder/controller 全部)
make:migration create_posts_tabledatabase/migrations/...--create=posts / --table=posts
make:seeder PostSeederdatabase/seeders/PostSeeder.php-
make:factory PostFactorydatabase/factories/PostFactory.php--model=Post
make:request PostStoreRequestapp/Http/Requests/...-
make:policy PostPolicyapp/Policies/PostPolicy.php--model=Post
make:middleware CheckAgeapp/Http/Middleware/...-
make:command BackupDbapp/Console/Commands/...-
make:job ProcessPodcastapp/Jobs/ProcessPodcast.php--sync
make:event OrderShippedapp/Events/OrderShipped.php-
make:listener SendShipmentNotificationapp/Listeners/...--event=OrderShipped
make:resource PostResourceapp/Http/Resources/...--collection
make:test PostTesttests/Feature/PostTest.php--unit / --pest
make:mail OrderShippedapp/Mail/OrderShipped.php-
make:notification InvoicePaidapp/Notifications/...-
make:rule Uppercaseapp/Rules/Uppercase.php-
make:provider RouteServiceProviderapp/Providers/...-

マルチオプション例

# Post モデル + マイグレーション + ファクトリ + シーダ + リソースコントローラ + Form Request を一度に
php artisan make:model Post -mfscR --requests

# api 用リソースコントローラ
php artisan make:controller Api/PostController --api --model=Post

DB / マイグレーション系

php artisan migrate                  # 未実行のマイグレーションを実行
php artisan migrate --force          # 本番でも強制実行
php artisan migrate:status           # マイグレーション状態
php artisan migrate:rollback         # 直近のバッチを巻き戻す
php artisan migrate:rollback --step=3
php artisan migrate:reset            # 全マイグレーションを巻き戻す
php artisan migrate:refresh          # reset + migrate
php artisan migrate:fresh            # 全テーブル drop + migrate (高速)
php artisan migrate:fresh --seed     # + seed も実行

php artisan db:seed                  # DatabaseSeeder 実行
php artisan db:seed --class=PostSeeder
php artisan db:wipe                  # 全テーブル削除 (危険)
php artisan db:show                  # DB 接続情報
php artisan db:table users           # テーブル構造

キャッシュ / 最適化系

# 個別クリア
php artisan cache:clear              # アプリキャッシュ (Cache::)
php artisan config:clear             # config キャッシュ
php artisan route:clear              # route キャッシュ
php artisan view:clear               # コンパイル済 Blade
php artisan event:clear              # イベントキャッシュ

# 全部まとめてクリア (本番デプロイで重宝)
php artisan optimize:clear

# 本番用キャッシュ構築
php artisan config:cache             # config を 1ファイルに
php artisan route:cache              # ルートを 1ファイルに (closure 不可)
php artisan view:cache               # 全 Blade を事前コンパイル
php artisan event:cache              # イベントキャッシュ
php artisan optimize                 # config + route + event をまとめてキャッシュ

Queue / Schedule

php artisan queue:work               # ワーカー起動 (常駐)
php artisan queue:work --queue=high,default --tries=3 --timeout=120
php artisan queue:listen             # 開発用 (毎回プロセス起動)
php artisan queue:restart            # ワーカーに graceful 停止シグナル
php artisan queue:retry all          # 失敗ジョブ全リトライ
php artisan queue:failed             # 失敗ジョブ一覧
php artisan queue:flush              # 失敗ジョブ削除
php artisan queue:table              # jobs テーブル用 migration 生成

php artisan schedule:run             # cron から毎分呼ぶ
php artisan schedule:work            # 開発用 (フォアグラウンド常駐)
php artisan schedule:list            # 登録済スケジュール一覧
php artisan schedule:test            # 任意タスクを手動実行

その他よく使う

php artisan serve                       # 開発サーバ (http://127.0.0.1:8000)
php artisan serve --host=0.0.0.0 --port=8080

php artisan tinker                      # REPL (Eloquent / DB 試打)
php artisan tinker --execute="User::count()"

php artisan route:list                  # 全ルート一覧
php artisan route:list --path=api       # フィルタ
php artisan route:list --except-vendor   # ベンダー除外

php artisan storage:link                # public/storage を storage/app/public へリンク
php artisan key:generate                # APP_KEY を生成 (初回必須)
php artisan down / up                   # メンテナンスモード
php artisan env                         # 現在の環境名
php artisan inspire                     # 名言 (息抜き)
php artisan vendor:publish              # パッケージのアセット公開
php artisan auth:make                   # 認証 scaffold (古い laravel/ui)

カスタムコマンド作成例

php artisan make:command BackupDatabase
// app/Console/Commands/BackupDatabase.php
class BackupDatabase extends Command
{
    protected $signature = 'backup:db {--gzip : 圧縮する}';
    protected $description = 'DB を dump して S3 にアップロード';

    public function handle(): int
    {
        $this->info('バックアップ開始');
        $file = '/tmp/backup-' . date('Ymd-His') . '.sql';
        exec("mysqldump ... > $file");
        if ($this->option('gzip')) {
            exec("gzip $file");
            $file .= '.gz';
        }
        // S3 アップロード ...
        $this->info("完了: $file");
        return Command::SUCCESS;
    }
}
# 実行
php artisan backup:db --gzip

FAQ

Q: 本番でキャッシュを構築するベストプラクティスは?
A: composer install --no-dev --optimize-autoloaderphp artisan optimizephp artisan view:cache。デプロイスクリプトに含める。

Q: route:cache すると closure が動かない
A: route:cache はコントローラ参照のみ対応。Route::get("/", fn() => ...)HomeController に移すか route:cache を諦める。

Q: artisan が動かない (Class not found)
A: composer dump-autoload を実行。namespace / クラス名のタイポも確認。

編集
Post Share
子ページ
  1. 新規プロジェクトの作成
  2. サーバーの起動
  3. マイグレーションファイルの作成
  4. マイグレーション(テーブルの作成および定義の変更)
  5. モデルの作成
  6. 全ルートを確認
  7. Laravelのバージョンの確認方法
同階層のページ
  1. インストールと設定
  2. クイックスタート & チュートリアル(初心者向け)
  3. クイックスタート & チュートリアル(中級者向け)
  4. ルーティング
  5. Bladeテンプレート(ビュー/レイアウト)
  6. コントローラー
  7. マイグレーションとテーブル定義
  8. データベースの設定
  9. Eloquentモデル (ORM)
  10. SQLとクエリビルダー
  11. バリデーション
  12. .envファイルの設定値へのアクセス
  13. 動作環境による分岐処理
  14. configフォルダ配下の設定値へのアクセス
  15. assetヘルパーを利用したpublicフォルダへのアクセス
  16. storageフォルダへのアクセス
  17. アプリケーション名の変更
  18. メンテナンス
  19. ログイン画面(認証システム)の作成
  20. ログインの必須化
  21. ログインユーザー情報の取得
  22. ルートの認証化
  23. 本番サーバーへのデプロイ方法
  24. 多言語化
  25. csrf_field
  26. ファイルのダウンロード
  27. CSVのアップロードおよび読み込み(maatwebsite/excel)
  28. ページタイトルの設定
  29. コマンド一覧
  30. エラー一覧
  31. SQLの実行ログ出力方法
  32. キャッシュのクリア
  33. Selectの結果の最初もしくは最後に任意の値を追加する方法
  34. ajaxでPOST通信する際の注意点
  35. ソーシャルログインの実装
  36. セッション情報の確認
  37. ログイン、ユーザー登録、パスワードリセット後のリダイレクト先の変更方法
  38. redirectやreturn viewにメッセージを付与する方法
  39. クッキー(cookie)の設定と取得
  40. クラスの再読み込み
  41. csrfの有効時間を変更する方法
  42. ViewComposerを用いてviewに共通の値を付与する方法
  43. View::shareを用いて共通の値を各ビューに渡す方法
  44. ミドルウェアを用いた処理の共通化
  45. Middleware内でAuth::check()などを使用する方法
  46. Controller以外でリダイレクトする方法
  47. セッションの値の取得/保存/更新/削除
  48. $requestの値を変更する方法
  49. 常時SSL化
  50. ページング(ページネーション)をする方法
  51. vue.jsとの連携
  52. Vue.jsと連携するSPA実行環境構築
  53. .envの値をvue.jsで参照する方法
  54. vue.jsを本番環境にリリースする方法
  55. could not find driver(Windows, MySQL編)