Reduce controller bloat using Form Requests for auth/validation, small Actions/Services with DTOs, and resource/single-action controllers
Scanned 6/6/2026
Install via CLI
openskills install jpcaparas/superpowers-laravel---
name: laravel:controller-cleanup
description: Reduce controller bloat using Form Requests for auth/validation, small Actions/Services with DTOs, and resource/single-action controllers
---
# Controller Cleanup
Keep controllers small and focused on orchestration.
## Move auth/validation to Form Requests
- Create a Request class (e.g., `StoreUserRequest`) and use `authorize()` + `rules()`
- Type-hint the Request in your controller method; Laravel runs it before the action
```
php artisan make:request StoreUserRequest
```
## Extract business logic to Actions/Services
- Create a small Action (one thing well) or a Service for larger workflows
- Pass a DTO from the Request to the Action to avoid leaking framework concerns
```php
final class CreateUserAction {
public function __invoke(CreateUserDTO $dto): User { /* ... */ }
}
```
## Prefer Resource or Single-Action Controllers
- Use resource controllers for standard CRUD
- For one-off endpoints, use invokable (single-action) controllers
## Testing
- Write feature tests for the controller route
- Unit test Actions/Services independently with DTOs
No comments yet. Be the first to comment!
克劳德代码会话的正式评估框架,实施评估驱动开发(EDD)原则