SuperAPI AI 工具集

controller-cleanup

编程与开发

查看项目

更新于 10-15 21:08

技能介绍

用途:当 Symfony 控制器动作中混入业务逻辑、查询或代码行数过多,或输入解析、校验、授权与持久化挤在同一动作里,或控制台命令自行完成实际工作而非委托时,可用此技能进行重构。

主要能力:按默认工作流,先列出动作职责(输入、校验、授权、业务逻辑、持久化、副作用),在改动前用功能测试覆盖现有 HTTP 行为;用 #[MapRequestPayload] 或 #[MapQueryString] 把输入映射为 DTO 并交由验证器拒绝非法输入;把业务逻辑移入服务或命令处理器,授权移入 voter,副作用移入事件或消息;最终让动作只负责解析、授权、委托与响应,控制在五到十行。

使用方式与约束:服务应通过参数或构造函数类型提示注入,不得从容器中拉取;必须保持 HTTP 行为一致,包括相同状态码与响应载荷;不要把逻辑搬进换个名字的“manager”。控制台入口应写成可调用的 #[AsCommand] 类(Symfony 7.3+),并委托给同一批服务。输出契约包括:精简且只做委托的动作、各自单一职责的 DTO、服务、voter 或处理器,以及证明 HTTP 行为未变的功能测试。

适用场景:Symfony 项目中控制器或命令过于臃肿、职责混杂时的渐进式重构。限制:资料未提供具体安装命令、版本兼容范围、收费与价格信息,也未给出完整代码示例;深入实现细节需查阅其 reference.md。