laravel-controller-cleanup について
Laravel 開発向けのスキルで、コントローラーをリクエストの調整に集中させます。検証、ビジネスロジック、エンドポイントの責務を分け、各層をテストする方法を示します。
主な機能
- 01検証を Form Request に移動
- 02ロジックを Action や Service に抽出
- 03リソースまたは単一アクションコントローラーを使用
- 04ルートとビジネスロジックを個別にテスト
活用シーン
- 01責務が混在したコントローラーのリファクタリング
- 02CRUD や単発エンドポイントの構築
- 03ビジネスロジックの個別テスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ noartem/ skills --skill laravel-controller-cleanupインストール後、Claude Code で/laravel-controller-cleanupを入力して読み込まれたか確認します。
詳細
コントローラーの整理
コントローラーは小さく保ち、オーケストレーションに専念させます。
認証/バリデーションをフォームリクエストに移す
- Request クラス(例:
StoreUserRequest)を作成し、authorize()とrules()を使用します - コントローラーのメソッドで Request を型指定します。Laravel がアクションの実行前に処理します
php artisan make:request StoreUserRequest
ビジネスロジックをアクション/サービスに切り出す
- 小規模な処理には単一の役割に特化した Action を、大規模なワークフローには Service を作成します
- フレームワークの関心事が漏れないよう、Request から Action に DTO を渡します
final class CreateUserAction {
public function __invoke(CreateUserDTO $dto): User { /* ... */ }
}
リソースコントローラーまたは単一アクションコントローラーを優先する
- 標準的な CRUD にはリソースコントローラーを使用します
- 単発のエンドポイントには、呼び出し可能な(単一アクション)コントローラーを使用します
テスト
- コントローラーのルートに対するフィーチャーテストを作成します
- DTO を使用して Action/Service を個別にユニットテストします
コメント
Markdown 対応