肉磨机 / 值对象
此包已弃用且不再维护。未建议替代包。
作为自定义域值对象基础的抽象值对象实现。
v0.0.0
2015-09-25 17:48 UTC
Requires
- php: >=5.4.0
- fleshgrinder/equalable: ~0.0
- fleshgrinder/stringable: ~0.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2020-01-24 16:00:30 UTC
README
值对象
包含创建自定义域值对象构建块的抽象值对象包。
安装
打开终端,进入项目目录并执行以下命令以将此包添加到依赖项
$ composer require fleshgrinder/value-object
此命令要求您全局安装Composer,如Composer文档的安装章节中所述。
使用
源代码目录中有两个抽象类和一个接口,可用于构建满足项目需求的自定义域值对象。提供的ValueObject
接口是一个头接口,它组合了一些接口以遵守每个值对象应提供的常见方法契约。建议实现此接口以实现完全自定义的行为。
SingleValueObject
是构建仅由单个值表示的值对象的完美基础。只需扩展抽象类并实现必要的抽象方法即可。您还可以扩展SingleValueObjectTest
并覆盖getInstance
、getDefaultValue
和getDefaultUnequalValue
方法,以便对您的自定义单值值对象进行全面测试。
MultiValueObject
是构建表示多个值的值对象的完美基础。但是,它仅实现了equals
方法,以确保给定值是同一实例,并将进一步检查委托给扩展的子类。多值值对象很复杂,无法实现适合所有要求的抽象。您也可以简单地实现接口并自己实现实例检查。
网站链接
- 维基百科:值对象
- Mathias Verraes:值对象的铸造
- Eric Evans (2003):域驱动设计:软件核心的复杂性处理
- 维基百科:域驱动设计
- Carlos Buenosvinos, Christian Soronellas和Keyvan Akbary:PHP中的域驱动设计