black/ddd-php

此包已被废弃,不再维护。未建议替代包。

实现了PHP中的领域驱动设计(DDD)

v2.0.0 2015-01-28 15:20 UTC

This package is not auto-updated.

Last update: 2020-05-08 14:08:58 UTC


README

PHP中的领域驱动设计(DDD)是一个简单项目(一个文件夹结构),用于你的项目构建,基于领域驱动设计

Latest Stable Version Total Downloads

安装

在PHP中安装DDD推荐使用Composer

{
    "require": {
        "black/ddd-php": "@stable"
    }
}

技巧:你应该浏览black/ddd-php页面来选择要使用的稳定版本,避免使用@stable元约束。

为什么?

首先,我想根据语义创建一个基于持续项目的文件夹结构。这个小库是我项目的良好开端,尽管这个集成与DDD规则的一些部分有疑问,但这个库将适用于许多项目。

使用方法

此项目是一个简单的文件夹结构,具有接口(具有简单合约)。遵循此结构,你的项目将遵循DDD(虽然不完全正确,但你的设计将会很好)。

为什么你不应该在项目中使用此库?

有很多原因,比如

  • 存储库接口位于Domain\Model中,有4个基本函数。如果你想在此接口上添加CQRS模式,你需要一个读取和写入端,因此你不能使用此接口进行扩展。

  • Repository::find()需要一个值对象。创建一个实现ValueObjectInterface的具体值对象并完成工作... 或者不。你不能接受所有值对象进行查找,因此你需要为测试$id编写条件或抛出InvalidArgumentException。

因此,我的建议(17个月后):你想创建一个DDD项目吗?如果是,遵循此包的规则,你将创建一个DDD项目,但你不应该在项目中实施此规则。

贡献

此项目正在开发中,因此请不要犹豫查看CONTRIBUTING文件并提交你的PR。

致谢

此README深受Hateoas库的影响,作者是伟大的@willdurand。这个人需要你的PR以实现PHP中的REST。

Alexandre "pocky" Balmes alexandre@lablackroom.com。如果你喜欢我的工作,请给我Flattrs买我礼物或雇佣我!

许可协议

PHP中的领域驱动设计(DDD)在MIT许可下发布。有关详细信息,请参阅附带的LICENSE文件。