somnambulist / domain
提供创建领域对象的实体、辅助程序和基本实现集合。
6.0.0
2024-03-02 18:18 UTC
Requires
- php: >=8.1
- ext-bcmath: *
- ext-json: *
- ext-mbstring: *
- beberlei/assert: ^3.3
- pragmarx/ia-str: ^7.3
- ramsey/uuid: ^4.7
- somnambulist/collection: ^5.3
- somnambulist/enumeration: ^1.0
Requires (Dev)
- ext-pdo: *
- doctrine/doctrine-bundle: ^2.11.0
- doctrine/orm: ^3.0
- pagerfanta/pagerfanta: ^3.8
- phpspec/prophecy-phpunit: ^2.1
- phpunit/phpunit: ^10.5
- somnambulist/read-models: ^3.3
- symfony/amqp-messenger: ^6.4
- symfony/event-dispatcher: ^6.4
- symfony/framework-bundle: ^6.4
- symfony/http-foundation: ^6.4
- symfony/messenger: ^6.4
- symfony/phpunit-bridge: ^6.4
- symfony/property-access: ^6.4
- symfony/security-bundle: ^6.4
- symfony/serializer: ^6.4
- symfony/var-dumper: ^6.4
- symfony/yaml: ^6.4
Suggests
- doctrine/orm: To use the Doctrine components and have an entity mapper
- giggsey/libphonenumber-for-php: To validate phone numbers / convert to E164 from a local format
- laravel-doctrine/orm: A Laravel mapping for Doctrine
- pagerfanta/pagerfanta: For Pagination of Doctrine results and other data
- symfony/http-foundation: For request id injection into event context
- symfony/messenger: (A)Sync Bus implementation for Symfony needed for query/command/event bus messenger implementations
- symfony/property-access: Needed for serializing JSON payloads
- symfony/security-core: For injecting the user information into event context
- symfony/serializer: Send domain events as JSON strings via messenger
- dev-master
- 6.0.0
- 5.x-dev
- 5.1.0
- 5.0.0
- 4.7.0
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.5.1
- 2.5.0
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.8
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-08-31 00:33:18 UTC
README
提供构建面向领域项目的基本支持类集。此库将之前分开的领域和映射库编译成一个项目,以便更容易维护。
它包括
- 命令
- 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文件夹中的更多文档,了解每个组件。