SuperAPI AI 工具集

laravel-value-objects

通用与其它

查看项目

更新于 10-15 23:58

技能介绍

用途:该指南用于在 Laravel 项目中创建不可变的值对象(Value Object),以表示带有行为的领域概念,例如金额、处理结果、坐标、邮箱地址等。

主要能力:说明何时应使用值对象(复杂领域值、需要不可变性、丰富校验逻辑、需要相等比较、封装领域规则),以及何时应改用 DTO(仅用于层间数据传输、无领域行为)。给出简单值对象(如 ProcessResult)与 Money 值对象的实现思路,并展示创建、运算、格式化与比较的用法示例。

关键模式:使用 readonly 属性保证不可变;提供静态工厂方法(如 fromDollars、success)作为命名构造器;可用私有构造函数强制走工厂方法;在构造函数中校验;运算返回新实例而非修改自身;封装领域规则(如 add 前校验币种一致)。目录约定为 app/Values/,可放置 Money.php、ProcessResult.php、Coordinate.php、EmailAddress.php 等。

限制:资料未提供安装命令、版本要求、收费或平台信息;示例代码为 PHP,具体完整实现(如 Money 的完整代码)需查看原文链接。