【Laravel 12 対応】よく使うコマンド最強テンプレ集|キャッシュクリア・GitHub・Seeder・独自Command・MySQLまで全部コピペでOK

Laravel

【Laravel 12 対応】よく使うコマンド最強テンプレ集|キャッシュクリア・GitHub・Seeder・独自Command・MySQLまで全部コピペでOK

Laravel 12 で毎日使うコマンドを、「失敗しない実務テンプレ」と「置き換えポイント」付きで完全整理。artisan / seeder / factory / migration / 自作コマンド / キャッシュクリア / GitHub運用 / MySQL接続&バックアップまで、このページのコピペだけで即戦力になれます。

本記事は「Laravel 12 × 実務」で本当に使うコマンドだけを、そのまま現場に流し込める形でまとめた決定版です。
まずは超即戦力テンプレからどうぞ。角括弧 [...]] の中だけ置き換えれば動きます。

  1. 1. Laravel コマンド|超即戦力テンプレ(Laravel 12)
    1. 1-1. 新規プロジェクト〜起動
    2. 1-2. generate 系(まとめて骨組みを作る)
    3. 1-3. DB操作(migrate / seed / refresh)
    4. 1-4. ルーティング/キャッシュ/最適化
    5. 1-5. ストレージリンク / ベンダ公開
    6. 1-6. キュー/スケジューラ
    7. 1-7. Tinkerで素早く確認
  2. 2. キャッシュクリア完全攻略(「どれを消すか」問題)
  3. 3. GitHub 運用テンプレ(初期化〜CIまで)
    1. 3-1. 初期化と基本フロー
    2. 3-2. .gitignore(Laravel向け)
    3. 3-3. GitHub Actions(テスト+静的解析の例)
  4. 4. Seeder / Factory テンプレ(実務最短コース)
    1. 4-1. Factory(ダミーデータの設計)
    2. 4-2. Seeder(投入の順序管理)
  5. 5. 独自 Command(artisan コマンド)テンプレ
    1. 5-1. 雛形の作成
    2. 5-2. 実装テンプレ(引数・オプション付き)
    3. 5-3. スケジューリング
  6. 6. MySQL|.env接続・ユーザ作成・バックアップ&復元の神テンプレ
    1. 6-1. .env(開発 / 本番)
    2. 6-2. MySQL ユーザ/権限/DB作成
    3. 6-3. バックアップ/リストア(mysqldump)
    4. 6-4. 代表的なMigrationパターン(外部キー/インデックス)
    5. 6-5. よくある接続トラブルの即解
  7. 7. 実務での「詰みポイント」→ これで解消
    1. 7-1. 反映されない問題の99%はキャッシュ
    2. 7-2. Seeder/Factoryが崩れる
    3. 7-3. Gitで.envをコミットしちゃった
  8. 8. まとめ|今日からの運用チェックリスト
  9. 9. よくある質問(FAQ)
    1. Q1. デプロイ後に画面が崩れる/反映されない
    2. Q2. SeederとFactoryの違いは?
    3. Q3. Commandはどこまで作る?

1. Laravel コマンド|超即戦力テンプレ(Laravel 12)

1-1. 新規プロジェクト〜起動

composer create-project laravel/laravel [project_name] cd [project_name] php artisan serve –host=0.0.0.0 –port=8000 # or Sail: # curl -s https://laravel.build/[project_name] | bash # cd [project_name] && ./vendor/bin/sail up -d
Tip: 共有開発やVPSなら --host=0.0.0.0 指定で外部アクセスOK。

1-2. generate 系(まとめて骨組みを作る)

# Model + migration + controller + resource まで一気に: php artisan make:model [ModelName] -mcr # Request/Resource/FormRequestなど php artisan make:request [StorePostRequest] php artisan make:resource [PostResource] # Migration/Seeder/Factory php artisan make:migration create_[table]_table php artisan make:seeder [Model]Seeder php artisan make:factory [Model]Factory –model=[Model] # その他 php artisan make:job [SendMailJob] php artisan make:event [UserRegistered] php artisan make:listener [SendWelcomeMail] php artisan make:policy [PostPolicy] –model=Post php artisan make:command [CommandName]

1-3. DB操作(migrate / seed / refresh)

# 反映 php artisan migrate # 最新まで一括(まだの人全員) php artisan migrate –force # リフレッシュしてSeedも流す(開発で最強) php artisan migrate:fresh –seed # 任意のSeederだけ実行 php artisan db:seed –class=[UserSeeder] # ロールバック php artisan migrate:rollback –step=1

1-4. ルーティング/キャッシュ/最適化

# ルート一覧 php artisan route:list # キャッシュ削除(安全パック) php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear php artisan optimize:clear # ← 迷ったらこれ
注意: 本番で php artisan optimize を使っている場合、デプロイ後は optimize:clear で不整合を消してから再キャッシュするのが鉄板。

1-5. ストレージリンク / ベンダ公開

php artisan storage:link php artisan vendor:publish –tag=[package-tag]

1-6. キュー/スケジューラ

# キュー起動(Worker) php artisan queue:work –tries=3 –backoff=5 # 1回限り確認 php artisan queue:listen # スケジュール(Cron側に設定) # * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

1-7. Tinkerで素早く確認

php artisan tinker >>> App\Models\User::factory()->count(3)->create(); >>> cache([‘key’ => ‘value’], 600); >>> cache(‘key’); // ‘value’

2. キャッシュクリア完全攻略(「どれを消すか」問題)

Laravelは複数種のキャッシュを持ちます。「ページが古い」「設定が反映されない」時は対象を特定して消すのがコツ。

  • アプリケーションキャッシュphp artisan cache:clear(アプリが保存したキー値)
  • 設定キャッシュphp artisan config:clearconfig/*.php.env変更時)
  • ルートキャッシュphp artisan route:clear(ルート定義変更)
  • ビューキャッシュphp artisan view:clear(Blade再コンパイル)
  • 総合お掃除php artisan optimize:clear(迷ったらこれ)
運用の型: デプロイ → optimize:clear → 必要に応じて config:cacheroute:cache を再作成。

3. GitHub 運用テンプレ(初期化〜CIまで)

3-1. 初期化と基本フロー

git init git branch -M main git remote add origin git@github.com:[owner]/[repo].git git add . git commit -m “feat: 初期セットアップ(Laravel 12)” git push -u origin main # 開発ブランチ git checkout -b feat/[short-desc] # 作業 → commit → push → PR

3-2. .gitignore(Laravel向け)

/vendor/ node_modules/ .env .env.* /storage/*.key /public/storage /public/hot /.idea/ /.vscode/ npm-debug.log* yarn-error.log*

3-3. GitHub Actions(テスト+静的解析の例)

最小のCI例です。Pest/PHPUnitやLaravel Pint等を好みで追加。

# .github/workflows/ci.yml name: ci on: push: branches: [ “main”, “develop”, “feat/**” ] pull_request: jobs: php-tests: runs-on: ubuntu-latest steps: – uses: actions/checkout@v4 – uses: shivammathur/setup-php@v2 with: php-version: ‘8.3’ extensions: mbstring, intl, pcntl, bcmath, pdo_mysql coverage: none – name: Install dependencies run: composer install –no-interaction –prefer-dist – name: App key run: php artisan key:generate –force – name: Run tests run: php artisan test –testsuite=Unit,Feature

4. Seeder / Factory テンプレ(実務最短コース)

4-1. Factory(ダミーデータの設計)

# database/factories/PostFactory.php public function definition(): array { return [ ‘user_id’ => User::factory(), // 関連を自動で ‘title’ => fake()->sentence(6), ‘body’ => fake()->paragraph(4), ‘status’ => fake()->randomElement([‘draft’,’published’]), ‘published_at’ => fake()->optional()->dateTimeBetween(‘-1 year’,’now’), ]; }

4-2. Seeder(投入の順序管理)

# database/seeders/DatabaseSeeder.php public function run(): void { $admin = \App\Models\User::factory()->create([ ‘name’ => ‘Admin’, ‘email’ => ‘admin@example.com’, ]); \App\Models\Post::factory(30)->for($admin)->create(); } # 実行 php artisan db:seed # or php artisan db:seed –class=DatabaseSeeder
鉄則: 「外部キーの親 → 子」の順で作成。Factoryの for() や リレーション名を活用すれば崩れにくい。

5. 独自 Command(artisan コマンド)テンプレ

5-1. 雛形の作成

php artisan make:command [CommandName] # 例: php artisan make:command CleanupOldPosts

5-2. 実装テンプレ(引数・オプション付き)

# app/Console/Commands/CleanupOldPosts.php protected $signature = ‘posts:cleanup {–days=30 : 何日前より古い記事を対象}’; protected $description = ‘古い記事を削除 or アーカイブします’; public function handle(): int { $days = (int)$this->option(‘days’); $cutoff = now()->subDays($days); $count = \App\Models\Post::where(‘updated_at’,’<',$cutoff)->delete(); $this->info(“Deleted: {$count} posts (older than {$days} days).”); return self::SUCCESS; }

5-3. スケジューリング

# app/Console/Kernel.php protected function schedule(Schedule $schedule): void { $schedule->command(‘posts:cleanup –days=60′)->dailyAt(’03:10’); } # サーバ側のcron: # * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

6. MySQL|.env接続・ユーザ作成・バックアップ&復元の神テンプレ

6-1. .env(開発 / 本番)

# 開発(ローカル) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=[db_name] DB_USERNAME=[db_user] DB_PASSWORD=[db_pass] DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_0900_ai_ci # 本番(VPS) DB_HOST=[prod_host_or_private_ip] DB_DATABASE=[prod_db] DB_USERNAME=[prod_user] DB_PASSWORD=[secure_password]

6-2. MySQL ユーザ/権限/DB作成

— ログイン mysql -u root -p — DB作成(UTF8MB4 推奨) CREATE DATABASE [db_name] CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; — ユーザ作成(MySQL 8) CREATE USER ‘[db_user]’@’%’ IDENTIFIED WITH mysql_native_password BY ‘[db_pass]’; — 権限 GRANT ALL PRIVILEGES ON [db_name].* TO ‘[db_user]’@’%’; FLUSH PRIVILEGES;

6-3. バックアップ/リストア(mysqldump)

# ダンプ(構造+データ) mysqldump -u[db_user] -p[db_pass] [db_name] > backup-$(date +%F).sql # 復元 mysql -u[db_user] -p[db_pass] [db_name] < backup-2025-11-12.sql

6-4. 代表的なMigrationパターン(外部キー/インデックス)

Schema::create(‘posts’, function (Blueprint $table) { $table->id(); $table->foreignId(‘user_id’)->constrained()->cascadeOnDelete(); $table->string(‘title’, 120)->index(); $table->text(‘body’); $table->enum(‘status’, [‘draft’,’published’])->default(‘draft’)->index(); $table->timestamp(‘published_at’)->nullable()->index(); $table->timestamps(); });

6-5. よくある接続トラブルの即解

  • 「Access denied」:ユーザ/ホスト/権限の3点を見る('%' かローカルか)。
  • 照合順序エラー:DB/テーブル/接続のcollation不一致。utf8mb4_0900_ai_ciで統一。
  • タイムゾーン差APP_TIMEZONEやMySQLサーバのtime_zoneを確認。

7. 実務での「詰みポイント」→ これで解消

7-1. 反映されない問題の99%はキャッシュ

  • 設定系:config:clear
  • ルート系:route:clear
  • Blade系:view:clear
  • 迷ったら:optimize:clear

7-2. Seeder/Factoryが崩れる

親テーブルを先に作る。Factoryの for() / リレーションを使って順序を担保。

7-3. Gitで.envをコミットしちゃった

  1. git rm --cached .env
  2. .gitignore.env を追記
  3. キーは必ずローテーション(APP_KEY含む)

8. まとめ|今日からの運用チェックリスト

  • キャッシュ方針をチームで統一(デプロイ時のoptimize:clear→再キャッシュ)
  • Seeder/Factoryで「作れる状態」を常に維持(migrate:fresh --seedで検証)
  • GitHub:PR前にテスト自動化(Actions)を通す
  • MySQL:ダンプの定期化、collation統一
  • 独自Command:定期タスクはCommand化→schedule

9. よくある質問(FAQ)

Q1. デプロイ後に画面が崩れる/反映されない

A. php artisan optimize:clear → 必要に応じて config:cache / route:cache を再生成。

Q2. SeederとFactoryの違いは?

A. Factoryは「データの作り方」、Seederは「投入の順序と量」。両方使うと再現性が爆上がり。

Q3. Commandはどこまで作る?

A. 人手運用で繰り返すタスクは全部Command化→scheduleへ。

本記事が役立ったらブックマーク&共有いただけると嬉しいです。質問やリクエストはコメント欄へ!

コメント

タイトルとURLをコピーしました