andrzejkupczyk/ddd-building-blocks

领域驱动设计组件实现

v3.0.0 2021-01-02 13:25 UTC

This package is auto-updated.

Last update: 2024-09-29 04:08:56 UTC


README

PHP requirement GitHub license GitHub tag (latest SemVer)

这个仓库帮助我实验领域驱动设计(DDD)方法。

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

我应该使用这个库吗?

尽管这个包可以作为通用子域来减轻项目核心域的负担,但它作为一个例子开发,可能无法完全反映你的领域。因此,你最好使用DDD Generics包提供的接口来编写自己的DDD组件,以迫使团队成员或你自己以不可变对象及其交互的方式思考。

安装

使用Composer

composer require andrzejkupczyk/ddd-building-blocks

示例用法

<?php

namespace Brunswick\Billiards\Table;

use WebGarden\Model\ValueObject\Number\Natural;

final class Size extends Natural
{
    protected static function validate($feet)
    {
        return parent::validate($feet)->between(7, 9);
    }
}