andrzejkupczyk/ddd-generic-subdomain

支持统一实现DDD组件的接口

dev-master / 1.0.x-dev 2021-02-14 10:16 UTC

This package is auto-updated.

Last update: 2024-09-14 17:48:20 UTC


README

PHP requirement

本软件包提供接口,可用于支持在核心领域内统一实现DDD组件。它旨在作为现成解决方案,帮助避免模型拥堵,并强迫团队成员或您自己以不可变对象及其交互为思考方式。

所有实现都受到文献、由Nicolò Pignatelli创建的ValueObject库、SeedStack Java开发栈、ValueObjects工具包以及一些其他更直接来源的启发,但主要是我的经验和需求。

组件

文档是对弱者的,但代码中也有一些有用的信息。

值对象的不可变性

ValueObject接口表示一个没有身份的不可变对象,然而在PHP中不可变性无法保证。目前,实现不可变性的唯一方法是通过封装,因此您可以使用ImmutableValueObject代理类。

$year = new ImmutableValueObject(new Year(2020));
// or, using a helper function
$year = immutable(new Year(2020));

代理值对象充当真实对象的替代品,但同时也增加了对其不可变性的信心。

最后,您还可以使用Psalm

安装

使用Composer

composer require andrzejkupczyk/ddd-generic-subdomain

示例用法

https://github.com/andrzejkupczyk/ddd-building-blocks