Claude CodeでLaravelコードを自動生成する方法
- 作成日 2026.05.13
- その他
Claude Codeを使えば、Laravelのモデル、コントローラー、マイグレーション、テストコードなどを自然言語の指示から効率よく生成できます。重要なのは、ただ「作って」と依頼するのではなく、Laravelの設計方針、命名規則、テスト方針を事前に伝えることです。
Claude Codeとは
Claude Codeは、Anthropicが提供するターミナル上で動作するAIコーディング支援ツールです。プロジェクト内のファイル構成を読み取り、自然言語の指示に応じてコードの作成、修正、テスト実行、リファクタリングなどを行えます。
Laravel開発では、次のような作業に向いています。
モデルの作成、マイグレーション作成、コントローラー作成、フォームリクエスト作成、ルーティング追加、BladeやAPIレスポンスの作成、PestやPHPUnitによるテスト作成、既存コードの改善などです。
Claude CodeをLaravelで使う準備
まず、Laravelプロジェクトを用意します。
composer create-project laravel/laravel example-app
cd example-app
次にClaude Codeをインストールします。公式ではネイティブインストール方式が案内されています。
curl -fsSL https://claude.ai/install.sh | bash
インストール後、LaravelプロジェクトのルートディレクトリでClaude Codeを起動します。
claude
初回起動時は認証が必要です。画面の案内に従ってログインします。
CLAUDE.mdを作成してLaravel用の指示を書く
Claude CodeでLaravelコードを安定して自動生成するには、プロジェクトルートにCLAUDE.mdを作成します。
CLAUDE.mdは、Claude Codeに対する開発ルールブックです。Laravelのバージョン、使用するテストフレームワーク、コーディング規約、禁止事項などを書いておくと、毎回細かく説明しなくても一貫したコードを生成しやすくなります。
# Project Guidelines
This is a Laravel application.
## Rules
– Follow Laravel conventions.
– Use Form Request classes for validation.
– Use Eloquent relationships when appropriate.
– Do not put business logic directly in controllers.
– Use services or actions for complex business logic.
– Generate Pest tests for new features.
– Use Laravel Pint formatting.
– Do not modify unrelated files.
– Ask before changing database structure if the requirement is unclear.
## Testing
– Run tests after implementing a feature.
– Prefer feature tests for HTTP endpoints.
– Prefer unit tests for isolated business logic.
## Code Style
– Use simple and readable code.
– Avoid unnecessary comments.
– Use type declarations where appropriate.
日本語で指示を書いても問題ありませんが、コードコメントやコミットメッセージを英語に統一したい場合は、そのルールも明記します。
Laravelコードを自動生成する基本プロンプト
Claude Codeでは、曖昧な依頼よりも「何を、どのファイルに、どの仕様で作るか」を伝えると精度が上がります。
悪い例です。
ブログ機能を作って
良い例です。
Laravelでブログ投稿機能を作成してください。
要件:
– Postモデルを作成
– postsテーブルを作成
– カラムは id, title, slug, body, published_at, timestamps
– titleは必須、最大255文字
– slugはユニーク
– bodyは必須
– 管理画面用に投稿一覧、作成、編集、削除を実装
– バリデーションはForm Requestに分離
– コントローラーにビジネスロジックを書かない
– PestでFeatureテストも作成
– 実装後にテストを実行
このように具体的に書くことで、Laravelらしい構成のコードを生成しやすくなります。
マイグレーションとモデルを生成する
Laravelでは、データ構造を明確に伝えることが重要です。
Productモデルとproductsテーブルを作成してください。
カラム:
– id
– name: string, required
– description: text, nullable
– price: unsignedInteger
– stock: unsignedInteger, default 0
– is_active: boolean, default true
– timestamps
あわせてFactoryも作成してください。
Claude Codeは、artisanコマンドの実行、マイグレーションファイルの編集、モデルのfillable設定、Factory作成までまとめて進められます。
生成後は、必ずマイグレーション内容を確認します。特に金額、在庫、外部キー、nullable、index、unique制約はミスが起きやすい部分です。
コントローラーとルーティングを生成する
CRUD処理を作る場合は、ルーティング、コントローラー、バリデーション、ビューまたはAPIレスポンスの形式をまとめて指定します。
Product管理用のCRUDを作成してください。
要件:
– resource controllerを使用
– ルートは /admin/products
– index, create, store, edit, update, destroy を実装
– バリデーションはStoreProductRequestとUpdateProductRequestに分離
– Bladeテンプレートを使用
– 削除前に確認画面は不要
– 保存後は一覧画面へリダイレクト
– 成功メッセージをsession flashで表示
APIの場合は、BladeではなくJSONレスポンスを指定します。
ProductのAPI CRUDを作成してください。
要件:
– routes/api.phpに定義
– API Resourceを使用
– バリデーションはForm Request
– レスポンスはJSON
– 404時はLaravel標準の例外処理を使用
– PestでFeatureテストを作成
テストコードも同時に生成する
Claude CodeでLaravelコードを自動生成する場合、実装だけでなくテストも同時に作らせることが重要です。
先ほど作成したProduct CRUDに対してPestのFeatureテストを作成してください。
テスト内容:
– 商品一覧を表示できる
– 商品を作成できる
– 必須項目が空の場合はバリデーションエラーになる
– 商品を更新できる
– 商品を削除できる
テスト生成後は、次のコマンドを実行させます。
php artisan test
コード整形も行う場合は、Laravel Pintを使います。
./vendor/bin/pint
既存Laravelプロジェクトで使うときの注意点
既存プロジェクトでClaude Codeを使う場合、いきなり大きな変更を依頼しないことが大切です。
最初は次のように、調査だけを依頼します。
[code]
このLaravelプロジェクトの構成を確認してください。
まだファイルは変更しないでください。
確認してほしい内容:
- Laravelのバージョン
- 認証方式
- 主要なモデル
- ルーティング構成
- テスト環境
- コーディング規約
[/code]その後、小さな単位で実装を依頼します。
既存の設計に合わせて、注文履歴一覧機能を追加してください。
まず変更予定のファイル一覧と実装方針を提示してください。
その時点ではまだ実装しないでください。このように段階を分けると、不要なファイル変更や設計崩れを防ぎやすくなります。
Claude Codeに守らせたいLaravel開発ルール
Laravelで自動生成の品質を上げるには、次のルールをCLAUDE.mdに入れておくと効果的です。
## Laravel Rules
– Controllers should be thin.
– Validation must be handled by Form Request classes.
– Use Policies for authorization.
– Use API Resources for API responses.
– Use Eloquent relationships instead of manual joins when appropriate.
– Do not use DB facade unless necessary.
– Do not create new architectural patterns without checking existing code.
– Keep naming consistent with existing files.
– Always add tests for new features.
– Run Pint after code changes.特に「既存の設計に合わせる」「不要な設計を勝手に追加しない」という指示は重要です。AIは便利な一方で、過剰に抽象化したり、プロジェクトにない構成を追加したりすることがあります。
実用的なプロンプト例
ログイン済みユーザーのお気に入り機能を作る例です。
Laravelで投稿のお気に入り機能を追加してください。
要件:
– Userは複数のPostをお気に入り登録できる
– Postは複数のUserからお気に入り登録される
– 中間テーブルは post_user_favorites
– 同じ投稿を重複してお気に入りできない
– お気に入り追加と解除のエンドポイントを作成
– 認証済みユーザーのみ実行可能
– PostモデルとUserモデルにリレーションを追加
– PestでFeatureテストを作成
– 既存のコードスタイルに合わせる実装前に確認を挟みたい場合は、次のように依頼します。
まず実装方針だけを提示してください。
まだファイルは変更しないでください。実装してよい段階になったら、次のように依頼します。
その方針で実装してください。
実装後にPestテストを追加し、php artisan testを実行してください。自動生成後に必ず確認するポイント
Claude Codeで生成したLaravelコードは、そのまま本番投入せず、必ず人間が確認します。
確認すべきポイントは、バリデーションが正しいか、認可処理が入っているか、N+1問題が発生していないか、マイグレーションの制約が適切か、テストが実際の仕様を満たしているか、不要なファイル変更がないか、既存の命名規則と一致しているかです。
特に管理画面やAPIでは、認証と認可の確認が欠かせません。ログインしていれば誰でも更新できる状態になっていないか、PolicyやGateが必要な箇所に入っているかを確認します。
まとめ
Claude Codeを使うと、Laravelのコード生成を大幅に効率化できます。ただし、精度の高い自動生成には準備が必要です。
プロジェクトルートにCLAUDE.mdを作成し、Laravelの設計方針、テスト方針、コーディング規約を明記します。そのうえで、モデル、マイグレーション、コントローラー、バリデーション、テストの要件を具体的に伝えることが大切です。
Claude Codeは単なるコード生成ツールではなく、Laravelプロジェクト全体を理解しながら作業できる開発エージェントです。小さな単位で依頼し、テストとレビューを組み合わせることで、安全かつ実用的にLaravel開発を自動化できます。
-
前の記事
Claude Codeでシェルスクリプトを自動生成する方法 2026.05.12
-
次の記事
Claude CodeでReactコンポーネントを生成する方法 2026.05.13
コメントを書く