mcpField
L
laravel-best-practices

laravel-best-practices

github.com/laravel開発3.7k2.2k 回インストール1 日前に更新
リポジトリ

laravel-best-practices について

Laravel アプリケーションの開発者向けに、ルールに基づく実践方法を示すスキルです。既存のコード規約を優先し、変更前後に関連ルールやテストを確認する方針が特徴です。

主な機能

  1. 01Laravel のテーマ別ルール索引
  2. 02既存コードパターンの優先
  3. 03最小限の変更を促す指針
  4. 04バージョン依存 API の確認
  5. 05テストと差分の重点レビュー

活用シーン

  1. 01編集前の Laravel 変更の確認
  2. 02データベースやルーティング作業の規則選択
  3. 03変更後のテストとスタイル確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laravel/boost --skill laravel-best-practices

インストール後、Claude Code で/laravel-best-practicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
advanced-queries.md
architecture.md
blade-views.md
caching.md
collections.md
config.blade.php
db-performance.md
eloquent.md
error-handling.md
events-notifications.blade.php
http-client.md
mail.blade.php
migrations.blade.php
queue-jobs.md
routing.md
scheduling.blade.php
security.blade.php
style.md
validation.md

詳細

Laravel のベストプラクティス

Laravel のベストプラクティスを、ルールファイルのインデックスとしてまとめています。各ルールファイルでは、何をすべきか、そしてその理由を説明します。正確な API 構文は、search-docs で確認してください。

まず一貫性を重視する

ルールを適用する前に、アプリケーションですでにどのように実装されているかを確認してください。Laravel には有効なアプローチがいくつかあります。理論上は別のパターンのほうが優れていても、コードベースですでに使われているものが最善の選択です。一貫性の欠如は、最適でないパターンよりも問題です。

既存のパターンがあるか、同じ階層のファイルや関連するコントローラー、モデル、テストを確認してください。パターンが見つかったら、それに従ってください。同じ目的に別の方法を導入しないでください。これらのルールは、まだパターンが存在しない場合のデフォルトであり、既存のパターンを覆すものではありません。

適用方法

  1. 変更するファイル、周辺のコード、プロジェクト設定、関連するテストを確認し、既存のパターンを把握してください。正確性またはセキュリティ上の欠陥がある場合に限り、既存のパターンから逸脱し、その理由を明記してください。
  2. 影響するすべての懸念事項を、以下のルールインデックスに対応付けてください。編集前に、対応するルールファイルをすべて読んでください。無関係なルールファイルは読み飛ばしてください。
  3. 一貫性のある最小限の変更にしてください。同じ目的に別のパターンを導入するのではなく、アプリケーションのアーキテクチャと命名規則を維持してください。
  4. バージョンに依存する Laravel API は、インストールされているバージョンに合わせて search-docs で確認してください。search-docs を利用できない場合は、インストール済みのフレームワークを調べてください。
  5. まず、関連する範囲を絞ったテストを実行してください。変更に応じて、プロジェクトのフォーマッターと静的解析チェックも実行してください。
  6. 作業を終える前に、対応するすべてのルールと照らし合わせて差分を再確認してください。

ルールインデックス

複数の領域にまたがる変更では、複数のルールファイルを参照する必要がある場合があります。

懸念事項参照先
クエリ数、Eager Loading、インデックス、大規模データセットrules/db-performance.md
サブクエリ、集計、複雑な並べ替え、クエリプランrules/advanced-queries.md
モデル、リレーション、スコープ、キャストrules/eloquent.md
認証、認可、入力の安全性、シークレット、アップロードrules/security.md
Form Request とバリデーションルールrules/validation.md
コントローラー、ルートバインディング、リソース、ミドルウェアrules/routing.md
スキーマ変更、カラム、外部キー、インデックスrules/migrations.md
ジョブ、再試行、一意性、バッチ、Horizonrules/queue-jobs.md
キャッシュの有効期間、無効化、ロック、メモ化rules/caching.md
外部へのリクエスト、再試行、タイムアウト、フェイクrules/http-client.md
例外、レポート、レンダリング、ログコンテキストrules/error-handling.md
イベントと通知rules/events-notifications.md
Mailable とメールのアサーションrules/mail.md
スケジュールタスクと重複実行の防止rules/scheduling.md
コレクション、遅延イテレーション、一括操作rules/collections.md
Blade コンポーネント、属性、コンポーザーrules/blade-views.md
環境値とアプリケーション設定rules/config.md
テスト:カバレッジ、ファクトリー、フェイク、アサーションtesting-best-practices スキル
命名、ヘルパー、ファイルの責務範囲、PHP スタイルrules/style.md
アクション、サービス、依存関係、アプリケーション構成rules/architecture.md

判断ルール

  • 新しいヘルパーや依存関係を追加するよりも、フレームワークの機能と既存のアプリケーション抽象化を優先してください。
  • 先回りした抽象化は避けてください。明確なドメイン境界を作る、有意義な重複を取り除く、または振る舞いを個別にテストしやすくする場合に、コードを切り出してください。
  • Blade ビューでデータベースにアクセスしないようにし、コントローラー、リソース、ジョブ、シリアライズ処理をまたいだ、隠れた N+1 クエリを防いでください。

コメント