SuperAPI AI 工具集

laravel-dtos

编程与开发

查看项目

更新于 10-16 06:23

技能介绍

用途:laravel-dtos 是一份 Claude 技能指南,用于在 Laravel 项目中使用 Spatie Laravel Data 包构建数据传输对象(DTO),处理数据传输、API 请求与响应场景。

主要能力与约定:

  • 主张不要传递多个原始值,始终用 Data 对象包裹数据,以获得类型安全、IDE 自动补全、清晰的层间契约、验证集成与请求到领域对象的转换。
  • 优先使用 Data::from(数组),让包依据构造函数属性类型自动完成类型转换,如字符串转 CarbonImmutable、转枚举、数组转 Collection;避免在调用代码中手动转换。
  • 避免使用 #[MapInputName] 等大小写映射属性,改为在调用代码中显式映射字段名。
  • 日期转换是自动的,可在 config/data.php 配置 date_format。
  • DTO 使用构造函数属性提升(promoted properties),为所有属性标注类型,集合使用 PHPDoc 标注,支持嵌套 DTO。
  • 可在构造函数中应用格式化器(Formatters),如 EmailFormatter、PhoneFormatter、PostcodeFormatter。
  • 可为 DTO 添加静态工厂方法,命名 from{SourceType},如 fromArray、fromRequest、fromModel;复杂转换可放到独立 Transformer 类。
  • 支持模型 casts 将 JSON 列转为 DTO。
  • 命名约定:响应 DTO 为 {Entity}Data,请求 DTO 为 {Action}{Entity}Data,嵌套 DTO 为 {Descriptor}{Entity}Data。
  • 目录结构涵盖 app/Data/ 下的 Concerns、Formatters、Transformers 等。
  • 控制器通过 Transformer 将请求转为 DTO 并传给 Action;Action 接收 DTO 作为参数。
  • 测试通过 HasTestFactory trait 与 PHPDoc 关联工厂,使用 testFactory()->make() 或 collect(count: 5) 生成测试数据。

使用方式:本指南面向 Claude 技能场景,需结合 Spatie Laravel Data 官方文档使用。具体安装命令与版本信息暂未提供。

限制:资料未提供收费、价格、平台与效果的明确说明,也未见完整安装步骤;使用前应查阅 Spatie Laravel Data 官方文档确认包特性与配置。