Claude CodeでLaravelアプリを開発する — CLAUDE.mdとArtisan活用術
Claude CodeでLaravelアプリを作る手順を、環境構築からCLAUDE.md設計、Laravel Boost導入、Artisanコマンドの権限設計まで解説します。
Laravelは規約に沿った構造を持つPHPフレームワークで、公式ドキュメントもAIコーディングツールとの相性を前面に出しています。Claude Codeで開発を進める場合、環境構築だけでなくCLAUDE.mdの設計とLaravel Boostの導入が仕上がりを左右します。この記事では、インストールからCLAUDE.mdの書き方、Boost導入、Artisanコマンドの権限設計までを順に説明します。
Claude CodeとLaravelの開発フロー全体像
Laravel公式ドキュメントは、Laravelの意見の効いた規約と明確な構造を「AI活用開発に理想的なフレームワーク」と位置付けています。コントローラーを追加するよう指示すれば配置場所に迷わず、マイグレーションの命名規則とファイル位置も予測可能だと説明されています。
Claude Codeはコードベース全体を読み込み、ファイル編集やコマンド実行、開発ツールとの統合をこなすエージェント型のコーディングツールです。ターミナル、IDE拡張、デスクトップアプリ、ブラウザーなど複数の利用形態で動きます。
この2つを組み合わせる開発フローは、次の4段階に分けられます。
- PHP・Composer・Laravel installerとClaude Code自体を導入する
laravel newでアプリを作成し、開発サーバーを起動する- CLAUDE.mdでLaravel固有の規約をClaude Codeに伝える
- Laravel Boostを導入し、Artisanコマンドの実行権限を設計する
開発を始める前に必要な環境
Laravelアプリの作成には、PHP・Composer・Laravel installerが必要です。フロントエンド資産をビルドするため、NodeとNPM、またはBunも用意します。
PHPとComposerが未導入の環境では、公式が提供するインストールスクリプトでPHP・Composer・Laravel installerをまとめて導入できます。
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"Windows PowerShellとLinuxにも同等のスクリプトが用意されており、URLの mac 部分を windows や linux に置き換えます。すでにPHPとComposerがある場合は、Composer経由でLaravel installerだけを追加できます。
composer global require laravel/installerClaude Code本体は、ネイティブインストーラーで導入します。
curl -fsSL https://claude.ai/install.sh | bashネイティブインストールはバックグラウンドで自動更新されます。以降はターミナルで claude と入力するだけで起動できます。
Laravelアプリの作成とClaude Code設定
アプリの作成と起動
環境が整ったら、Laravel installerで新規アプリを作成します。インストーラーはテストフレームワーク・データベース・スターターキットの選択を対話形式で尋ねます。
laravel new example-app
cd example-app
npm install && npm run build
composer run devcomposer run dev は、開発用サーバーとキューワーカー、Viteの開発サーバーをまとめて起動するComposerスクリプトです。起動後はhttp://localhost:8000でアプリにアクセスできます。
既定のデータベースはSQLiteです。アプリ作成時に database/database.sqlite が生成され、必要なマイグレーションも自動実行されます。MySQLやPostgreSQLを使う場合は、.env の DB_* 変数を書き換えたうえで php artisan migrate を実行します。
CLAUDE.mdでLaravelの規約を伝える
Claude Codeはセッション開始時にCLAUDE.mdを読み込み、そこに書かれた指示に沿って動きます。プロジェクトのCLAUDE.mdは ./CLAUDE.md か ./.claude/CLAUDE.md に置きます。ビルドコマンドやコーディング規約、アーキテクチャ上の決定、命名規則、よくあるワークフローを記述します。バージョン管理を通じてチーム全体と共有される点が、個人用の CLAUDE.local.md との違いです。
ゼロから書く必要はありません。/init コマンドを実行すると、Claude Codeがコードベースを解析し、ビルドコマンドやテスト手順、発見した規約を含むCLAUDE.mdを自動生成します。すでにCLAUDE.mdがある場合は、上書きせず改善案を提示します。
指示の書き方も仕上がりに影響します。公式ドキュメントは「コードを適切にフォーマットする」のような曖昧な指示より、「2スペースインデントを使う」のように検証可能な具体的指示を推奨しています。ファイルサイズは200行が目安です。大きくなる場合は、パス限定ルール(.claude/rules/)に分割します。
こうした規約をコードに落とす前に仕様を固める開発スタイルは、cc-sddによる仕様駆動開発とも相性が良い考え方です。
Laravel Boostで精度を上げる
Laravel Boostは、AIコーディングエージェントとLaravelアプリの間を橋渡しするツールです。インストール済みパッケージのバージョンに応じた、より正確で慣用的なコードをエージェントが生成できるよう、Laravel固有のコンテキスト・ツール・ガイドラインを提供します。
Boostを導入すると、AIエージェントは15種類以上の専用ツールにアクセスできます。使用中のパッケージの把握、データベースへの問い合わせ、Laravelドキュメントの検索、ブラウザーログの読み取り、テストの生成、Tinker経由でのコード実行が含まれます。加えて、インストール済みのパッケージバージョンに特化した17,000件以上のベクトル化されたLaravelエコシステムドキュメントにもアクセスできます。
Boostは既存のプロジェクト規約に従い、既定では独自のスタイルルールを強制しません。対応バージョンはLaravel 10・11・12で、PHP 8.1以上が必要です。
composer require laravel/boost --dev
php artisan boost:installboost:install は対話形式のインストーラーで、使用中のIDEとAIエージェントを自動検出します。プロジェクトに合う機能だけを選んで有効化できます。独自のAIガイドラインを追加したい場合は、.ai/guidelines/ ディレクトリに .md や .blade.php ファイルを置きます。boost:install 実行時にBoostのガイドラインと合わせて読み込まれます。
Artisanコマンドの実行権限をどう設計するか
Claude Codeの権限システムは、ツール呼び出しをallow・ask・denyの3種類のルールで制御します。Bashコマンドのルールはコマンド全体の文字列と照合され、* で可変部分を表します。
たとえば Bash(php artisan make:model *) は、php artisan make:model Post のようなモデル生成コマンドだけを許可します。一方 Bash(composer *) のように広いワイルドカードを書くと、依存追加を伴う composer require まで無条件で許可してしまいます。ルールは可変部分だけを * にして、コマンド名の粒度は具体的に保つのが安全です。
Artisanコマンドは処理の破壊力に幅があります。一括で許可するより、コマンドの性質ごとに使い分ける方が安全です。
| コマンド例 | 処理内容 | 権限設計の目安 |
|---|---|---|
php artisan make:model | 処理内容モデルファイルの生成 | 権限設計の目安allowルールで自動許可しやすい |
php artisan migrate | 処理内容スキーマを変更する | 権限設計の目安askで都度確認する |
php artisan migrate:fresh | 処理内容全テーブルを削除して再作成する | 権限設計の目安allowルールに含めない |
composer require | 処理内容依存パッケージを追加し外部コードを取り込む | 権限設計の目安askで都度確認する |
migrate:fresh は、データベースの全テーブルを削除してから migrate コマンドを実行するArtisanコマンドです。誤って本番相当の環境で実行すると、既存データを丸ごと失います。
権限プロンプトで「Yes, and don't ask again」を選ぶと、Claude Codeはそのルールを .claude/settings.local.json に保存します。このファイルはソース管理に含めない前提です。チームで共有したい許可ルールは .claude/settings.json 側に書き、プロジェクトの信頼(workspace trust)を経て適用させます。
Claude Codeはシェル演算子を認識します。&& や ; でつないだ複合コマンドは、各サブコマンドが個別にルールと照合されます。Bash(php artisan migrate *) をaskに設定していれば、cd /tmp && php artisan migrate のような複合コマンドも同じくaskの対象です。起動時点からコマンドを絞りたい場合は、allowedTools/disallowedToolsによる絞り込みと組み合わせます。
よくあるつまずきと対処
Claude CodeとLaravelを組み合わせる際に起きやすいつまずきをまとめます。
CLAUDE.mdが肥大化して指示が効かなくなる。200行を超えるCLAUDE.mdは読み込むコンテキストが増え、指示への追従率が下がります。ディレクトリ構成や依存関係の一覧のようにコードベースから導出できる内容は削り、パス限定ルールへの分割を検討します。
.env を誤ってコミットしてしまう。Laravel公式も明記しているとおり、環境ごとに異なる設定を含む .env はGit管理の対象外にします。アプリ作成直後に .gitignore への追加を確認すると安心です。
Boostを導入せずにClaude Codeだけで実装を進めると、パッケージのバージョン差を踏まえたコード生成の精度が落ちる場合があります。使用中のバージョンに対応したドキュメントを参照できるBoostは、この差を埋める手段の一つです。
権限ルールを広く許可しすぎると、意図しないデータ削除や依存追加が無確認で実行されるリスクがあります。migrate:fresh のような破壊的なArtisanコマンドは、allowルールに含めない運用が無難です。
まとめ
Claude CodeでLaravelアプリを開発する流れは、環境構築、CLAUDE.mdによる規約の明文化、Laravel Boostの導入、Artisanコマンドの権限設計という4段階です。CLAUDE.mdは /init で下書きを作り、200行以内に収めます。Boostはバージョン固有のドキュメントと専用ツールでコード生成を補い、権限設計はコマンドの破壊力に応じてallow・askを使い分けます。
アプリが動くようになったら、次はデプロイの検討です。Herokuへのデプロイ手順はHeroku MCPサーバーでClaude Codeからアプリをデプロイ・スケーリングするで扱っています。Claude Codeを他の開発ツールと組み合わせた事例はClaude Code開発ツール導入事例でも比較しています。