提供创建领域对象的实体、辅助程序和基本实现集合。

6.0.0 2024-03-02 18:18 UTC

README

GitHub Actions Build Status Issues License PHP Version Current Version

提供构建面向领域项目的基本支持类集。此库将之前分开的领域和映射库编译成一个项目,以便更容易维护。

它包括

  • 命令
    • CommandBus接口/抽象命令
    • SF Messenger实现
  • Doctrine
    • 枚举工厂+类型绑定
    • Doctrine类型系统中的额外类型/类型覆盖
    • 扩展EntityRepository的抽象EntityLocator
    • 自定义Postgres DQL函数
    • 自定义EntityRepository特性
  • 模型
    • 合约 - 值对象接口定义
    • 类型 - 值对象、枚举和日期辅助程序的集合
    • AggregateRoot - 可以触发事件的聚合根存根实现
    • AbstractEntity和AbstractEntityCollection - 聚合根的子实体和辅助程序
  • 事件
    • EventBus接口/抽象事件
    • SF Messenger EventBus实现
    • Doctrine订阅者,在flush期间广播所有聚合根事件
    • 自定义序列化器,用于处理事件类不存在时的编码/解码
  • 作业
    • JobQueue接口/抽象作业
    • SF Messenger实现
  • 查询
    • QueryBus接口/抽象查询
    • SF Messenger实现
  • Doctrine .dcm.xml和Symfony .orm.xml约定中可嵌入对象的默认XML映射

要求

  • PHP 8.1+
  • mb_string
  • bcmath
  • beberlei/assert
  • eloquent/enumeration
  • somnambulist/collection
  • symfony/messenger用于Messenger总线实现。

安装

使用composer安装,或从github.com/checkout/pull文件。

  • composer require somnambulist/domain

从4.X升级到5.X

从5.X开始,此项目将被重命名以删除Domain。4.X包含一个classmap.php,提供向后兼容的别名。

从5.0开始,QueryBus支持类型化响应对象。这是一个可选功能,提供了一种内置机制来处理失败的查询,而无需在调用代码中捕获异常。

从5.0开始,领域事件名称始终在构建时生成为snake_case

从3.X升级到4.X

从4.X开始,此项目被重命名到Somnambulist\Components\Domain。更新所有引用以反映此更改,包括任何Doctrine映射文件/注解。

Doctrine AbstractIdentityType已从Identity命名空间移至主Types

使用

请参阅docs文件夹中的更多文档,了解每个组件。

链接