laravel:controller-cleanup について
Laravel 開発向けのスキルで、コントローラーを処理の調整に絞る方法を説明します。認可と検証を Form Request に、ビジネスロジックを Action や Service に分けたい開発者向けです。
主な機能
- 01Form Requestへの認証と検証の移動
- 02ActionやServiceへのロジック抽出
- 03Resourceまたは単一アクションの採用
- 04ルートとロジックの個別テスト
活用シーン
- 01コントローラーの責務整理
- 02フォーム入力の認証と検証
- 03ビジネスロジックの単体テスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jpcaparas/ superpowers-laravel --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 対応