black / ddd-php
实现了PHP中的领域驱动设计(DDD)
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2020-05-08 14:08:58 UTC
README
PHP中的领域驱动设计(DDD)是一个简单项目(一个文件夹结构),用于你的项目构建,基于领域驱动设计。
安装
在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文件。