【发布时间】:2022-01-22 09:10:13
【问题描述】:
我有一个问题,
我正在一个 laravel 项目中从 MVC 迁移到六边形架构和 DDD 架构。
我知道值对象代表表 X 的一个属性,但我有一个问题,我有一个有 60 列的表,它会有 60 个值对象吗? laravel 控制器中的同一张表有 20 个单独的表的连接,这 20 个表的列也是值对象?
还有一个问题,比如我通过id查询同一张表的记录,当我得到结果,我必须创建模型时,我应该实例化这60个值对象吗?
例子
$users = $this->user->find($id);
$user = new User(
new UserId($users->id),
value object 2,
value object 3.... to 60 value objects
);
【问题讨论】:
-
您是如何得出一个 DDD 值对象代表数据库表中的一列的结论的?
-
我得出的结论是,当某些列具有行为和验证时,我将它们转换为值对象,并在创建模型时,例如用户模型,$user = new User(value对象 1,值对象 2,.....)我自动分配贵重物品,因此我不必添加 30 或 40 个值对象
标签: php laravel domain-driven-design value-objects hexagonal-architecture