タイトル: コマンド一覧
SEOタイトル: Laravel Artisan コマンド一覧完全リファレンス
| この記事の要点 |
|
Artisan とは
Laravel に同梱されているコマンドラインインターフェース。プロジェクトルートで php artisan を実行すると全コマンドが一覧されます。
php artisan list # 全コマンド一覧
php artisan help make:controller # 特定コマンドのヘルプ
php artisan --version # Laravel バージョン
php artisan about # 環境情報 (Laravel 9+)
make: 系コマンド (生成)
| コマンド | 生成物 | 主オプション |
|---|---|---|
make:controller Foo | app/Http/Controllers/FooController.php | --resource / --api / --invokable |
make:model Post | app/Models/Post.php | -mfsc (migration/factory/seeder/controller 全部) |
make:migration create_posts_table | database/migrations/... | --create=posts / --table=posts |
make:seeder PostSeeder | database/seeders/PostSeeder.php | - |
make:factory PostFactory | database/factories/PostFactory.php | --model=Post |
make:request PostStoreRequest | app/Http/Requests/... | - |
make:policy PostPolicy | app/Policies/PostPolicy.php | --model=Post |
make:middleware CheckAge | app/Http/Middleware/... | - |
make:command BackupDb | app/Console/Commands/... | - |
make:job ProcessPodcast | app/Jobs/ProcessPodcast.php | --sync |
make:event OrderShipped | app/Events/OrderShipped.php | - |
make:listener SendShipmentNotification | app/Listeners/... | --event=OrderShipped |
make:resource PostResource | app/Http/Resources/... | --collection |
make:test PostTest | tests/Feature/PostTest.php | --unit / --pest |
make:mail OrderShipped | app/Mail/OrderShipped.php | - |
make:notification InvoicePaid | app/Notifications/... | - |
make:rule Uppercase | app/Rules/Uppercase.php | - |
make:provider RouteServiceProvider | app/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-autoloader → php artisan optimize → php 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 / クラス名のタイポも確認。