jgimeno / value-objects
PHP值对象的集合,用于作为领域驱动设计(DDD)的构建块。
0.3.0
2017-02-23 21:24 UTC
Requires
- php: >=7.0
- ramsey/uuid: ^3.5
Requires (Dev)
- phpunit/phpunit: ^6.0
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-28 20:14:45 UTC
README
终极PHP值对象集合
PHP值对象的集合,用于作为领域驱动设计(DDD)的构建块。
这个库旨在为不同项目定义值对象提供一个起点。
所有值对象都是不可变的。
如何安装
您可以使用composer来获取它
composer require jgimeno/value-objects
如何使用
基础对象
这个库的思路是收集一组对象,作为创建您领域的基础。
最基本的对象是ValueObject,我们可以从它扩展出我们想要创建的所有值对象。基础ValueObject实现了__toString()和equals()方法(即您免费获得它们)。
如果我们知道我们的值对象将受益于包含在Strings、Number或Boolean对象中的方法,我们可以从那里扩展。
原理
想象一下,我创建了一个名为SonName的对象,我们的领域需要这个对象。在这种情况下,从Strings扩展可能会有用,我们将有像toUpperCase()、trim()等可重用的方法。您应该明白了。
最后还有一个名为Identifier的基础对象。当创建ID时非常有用,例如,一个UserId可以从Identifier扩展。然后我们可以执行UserId::generate(),我们将使用UUID生成一个唯一的userId。
有用对象
Internet\Email:表示电子邮件地址的对象,当提供的电子邮件不是有效的电子邮件时,它会抛出异常。
Internet\IpAddress:表示IP地址的对象,当它不是有效的IP地址时,它会抛出异常。