【Laravel 12 対応】よく使うコマンド最強テンプレ集|キャッシュクリア・GitHub・Seeder・独自Command・MySQLまで全部コピペでOK
Laravel 12 で毎日使うコマンドを、「失敗しない実務テンプレ」と「置き換えポイント」付きで完全整理。artisan / seeder / factory / migration / 自作コマンド / キャッシュクリア / GitHub運用 / MySQL接続&バックアップまで、このページのコピペだけで即戦力になれます。
本記事は「Laravel 12 × 実務」で本当に使うコマンドだけを、そのまま現場に流し込める形でまとめた決定版です。
まずは超即戦力テンプレからどうぞ。角括弧 [...]] の中だけ置き換えれば動きます。
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:clear(config/*.php・.env変更時) - ルートキャッシュ:
php artisan route:clear(ルート定義変更) - ビューキャッシュ:
php artisan view:clear(Blade再コンパイル) - 総合お掃除:
php artisan optimize:clear(迷ったらこれ)
運用の型: デプロイ →
optimize:clear → 必要に応じて config:cache や route: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をコミットしちゃった
git rm --cached .env.gitignoreに.envを追記- キーは必ずローテーション(
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へ。



コメント