noahlvb / valueobject
一个用于启动域驱动设计 valueObjects 使用的 PHP 库
v1.0.2
2022-04-30 19:51 UTC
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-29 05:29:08 UTC
README
一个用于启动域驱动设计 valueObjects 使用的库
安装
使用 composer,添加
$ composer require noahlvb/valueobject
或者如果您使用 Symfony:valueobject-bundle
$ composer require noahlvb/valueobject-bundle
运行测试
为了确保一切正常工作,您可以运行测试
$ make test
如何使用
目前支持两种原始类型
- 字符串:ValueObjectString
- 整数:ValueObjectInteger
创建一个不带检查的简单值对象。
class Name extends ValueObjectString { protected function sanitize(string $value): string { return trim($value); } public function isValid(string $value): bool { return true; } }
如果您想在值对象的构建过程中验证值,只需覆盖 isValid 方法进行您的检查
class Name extends ValueObject { protected function sanitize(string $value): string { return trim($value); } public function isValid(string $value): bool { return strlen($value) < 255; } }
如果您想在构建过程中抛出自定义异常,覆盖 getException 方法以使用您自己的异常
class Name extends ValueObject { protected function sanitize(string $value): string { return trim($value); } public function isValid(string $value): bool { return strlen($value) < 255; } protected function getException(): Exception { return new NameToLongException(); } }
示例
示例实现可以在 tests/Unit/ValueObject
中找到。这些是用于测试的相同值对象