关于 laravel:controller-cleanup
这项 Laravel 开发技能指导开发者让控制器专注于流程协调,将验证和授权移入 Form Request,并把业务逻辑提取到 Action 或 Service。
主要功能
- 01将授权与验证移至 Form Request
- 02将逻辑提取到 Action 或 Service
- 03采用 Resource 或单动作控制器
- 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
将业务逻辑提取到 Actions/Services
- 创建一个小型 Action(专注做好一件事),或为较大型工作流创建 Service
- 将 DTO 从 Request 传递给 Action,避免泄露框架相关内容
final class CreateUserAction {
public function __invoke(CreateUserDTO $dto): User { /* ... */ }
}
优先使用 Resource 或单操作控制器
- 对标准 CRUD 使用资源控制器
- 对于一次性端点,使用可调用(单操作)控制器
测试
- 为控制器路由编写功能测试
- 使用 DTO 独立对 Actions/Services 进行单元测试
评论
支持 Markdown