complex-heart / domain-model
用于正确构建值对象、实体和聚合的领域模型工具集。
v4.2.0
2024-07-17 23:48 UTC
Requires
- php: ^8.1.0
- ext-json: *
- complex-heart/contracts: ^2.0.0
- doctrine/instantiator: ^2.0.0
- illuminate/collections: ^11.0.0
- lambdish/phunctional: ^2.1.0
- nesbot/carbon: ^3.2.0
- ramsey/uuid: ^4.1.0
Requires (Dev)
- mockery/mockery: ^1.6.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-faker: ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.0
- phpstan/phpstan-mockery: ^1.1
README
建模聚合、实体和值对象
Complex Heart 允许您使用一系列特性来建模领域聚合、实体和值对象。很好,但为什么是特性而不是类呢?嗯,有时您的类中存在某种继承关系。被迫使用某个基类过于侵入性,我个人也不喜欢。通过使用一系列特性和接口,您可以拥有所需的所有功能,而不会损害您自己领域的本质。
可用的特性有
HasAttributes
提供管理属性的功能。HasEquality
提供处理对象之间等价性的功能。HasInvariants
允许在实例化时进行不变性检查(守卫子句)。HasIdentity
定义实体/聚合标识。HasDomainEvents
提供领域事件管理。
在那些基础特性之上,Complex Heart 提供了现成的组合
IsModel
由HasAttributes
和HasInvariants
组成。IsValueObject
由IsModel
和HasEquality
组成。IsEntity
由IsModel
、HasIdentity
和HasEquality
组成。IsAggregate
由IsEntity
和HasDomainEvents
组成。
有关更多信息,请参阅维基。