mcpField
S
spatie-laravel-php

spatie-laravel-php

github.com/spatie開発971.2k 回インストール6 日前に更新
リポジトリ

spatie-laravel-php について

コードの生成、編集、整形、リファクタリング、レビューで Spatie の Laravel・PHP 規約を適用するコーディングスキルです。参照ガイドに基づき、Laravel の慣例、PHP 標準、関連ルールの順に重視します。

主な機能

  1. 01Laravel・PHP のコーディング指針
  2. 02PSR-1、PSR-2、PSR-12 への準拠
  3. 03型付きプロパティと戻り値型
  4. 04ルートとバリデーションの規約

活用シーン

  1. 01Laravel のコントローラーやモデルの生成・編集
  2. 02PHP または Blade ファイルのレビュー
  3. 03ルート、マイグレーション、テストのリファクタリング

インストール

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

$npx skills add https://github.com/spatie/guidelines-skills --skill spatie-laravel-php

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

同梱ファイルreferences/spatie-laravel-php-guidelines.md

詳細

Spatie Laravel および PHP ガイドライン

概要

コードスタイルの一貫性を保ち、Laravel の標準に沿ったコードにするため、Spatie の Laravel および PHP ガイドラインを適用します。

適用するタイミング

  • ユーザーが Spatie に明示的に言及していない場合も、Laravel または PHP のコーディング作業にはこのスキルを適用します。
  • Laravel/PHP コードの生成、編集、フォーマット、リファクタリング、レビュー、準拠を依頼された場合は、このスキルを適用します。
  • .php または .blade.php ファイル、ルート、コントローラー、モデル、設定、バリデーション、マイグレーション、テストを扱う場合は、このスキルを適用します。

対象範囲

  • 対象:.php、.blade.php、Laravel の規約(ルート、コントローラー、設定、バリデーション、マイグレーション、テスト)。
  • 対象外:JS/TS、CSS、インフラストラクチャ、データベーススキーマ設計、Laravel 以外のフレームワーク。

ワークフロー

  1. 成果物(コントローラー、ルート、設定、モデル、Blade、テストなど)を特定します。
  2. references/spatie-laravel-php-guidelines.md を読み、関連するセクションを確認します。
  3. まず Laravel の基本原則を適用し、次に PHP 標準、最後にセクション固有のルールを適用します。
  4. 既存のプロジェクト規約とルールが競合する場合は、Laravel の規約に従い、変更の一貫性を保ちます。

基本ルール(概要)

  • まず Laravel の規約に従います。
  • PSR-1、PSR-2、PSR-12 に従います。
  • 型付きプロパティと明示的な戻り値の型(void を含む)を優先します。
  • ?string のような短い nullable 構文を使用します。
  • すべてのプロパティをプロモートできる場合は、コンストラクターのプロパティプロモーションを使用します。
  • トレイトは1行に1つずつ、別々の use 文で記述します。
  • メソッドチェーンが複数行にわたる場合は、その後の -> もすべて改行し、1行と複数行のチェーンを混在させません。
  • 早期リターンを優先し、可能な場合は else を避けます。
  • 制御構造には必ず波括弧を使用します。
  • 文字列連結より文字列補間を使用します。
  • 正常系の処理は最後にします。先にエラー条件を処理します。

推奨事項と禁止事項

推奨:

  • URL にはケバブケース、ルート名にはキャメルケース、ルートパラメーターにはキャメルケースを使用します。
  • ルートにはタプル記法 [Controller::class, 'method'] を使用します。
  • コントローラーには複数形のリソース名(PostsController)を使用します。
  • バリデーションルールには配列記法を使用します。
  • config() ヘルパーを使用し、設定ファイル以外では env() を避けます。
  • サービスの設定は新しいファイルではなく config/services.php に追加します。
  • 翻訳には @lang ではなく __() を使用します。
  • enum 値とクラス定数には PascalCase を使用します。

禁止:

  • 完全な型ヒントがある場合に DocBlock を追加しないでください。
  • DocBlock で完全修飾クラス名を使用しないでください。
  • デフォルトで final や readonly を使用しないでください。
  • 早期リターンで対応できる場合に else を使用しないでください。
  • Blade の制御構造の後にスペースを入れないでください。

例

// Happy path last with early returns
if (! $user) {
    return null;
}

if (! $user->isActive()) {
    return null;
}

// Process active user...

// Short ternary
$name = $isFoo ? 'foo' : 'bar';

// Constructor property promotion
class MyClass {
    public function __construct(
        protected string $firstArgument,
        protected string $secondArgument,
    ) {}
}
@if($condition)
    Something
@endif

参照

  • references/spatie-laravel-php-guidelines.md

コメント