glamorous / value-object
在您的应用程序中包含 ValueObjects 的接口。还提供了一个实现此接口的枚举。
2.0
2021-05-10 23:53 UTC
Requires
- php: >=7.4
- myclabs/php-enum: 1.6.*
Requires (Dev)
- enlightn/security-checker: dev-main
- jakub-onderka/php-parallel-lint: ^1.0
- maglnet/composer-require-checker: 3.3.x-dev
- phpmd/phpmd: dev-master
- phpro/grumphp: dev-master
- phpstan/phpstan: 0.12.x-dev
- phpunit/phpunit: 9.5.x-dev
- povils/phpmnd: ^2.4
- sebastian/phpcpd: 6.0.x-dev
- squizlabs/php_codesniffer: 4.0.x-dev
This package is auto-updated.
Last update: 2024-09-12 14:58:26 UTC
README
PHP 接口,用于在项目中创建用于 ValueObjects。还提供了一个使用相同接口的抽象枚举类。
为什么?
ValueObjects 是在您的项目中使用的理想方式。您可以强制自己在项目中以所需的方式存储数据。
文档
接口
该接口有三个需要实现的方法。
- __toString():此魔法方法用于将 ValueObject 表示为字符串。对日志记录很有用。
- toNative():此方法必须返回一个数组、整数、字符串等。这需要用于测试两个 ValueObject 是否相同以及进行序列化。
- equalsTo(ValueObject $object):此方法需要一个 ValueObject 实例。可以使用
toNative()方法检查两个 ValueObject 是否相同。在枚举中,它使用父类的equals方法。
枚举
包含的枚举扩展了来自 MyCLabs 的枚举。此外,它还实现了接口。这样,就可以在应用程序中使用 toNative() 和 equalsTo() 函数。更重要的是,枚举也是一个值对象,创建后不能更改。当所有这些类都实现相同的接口时,开发人员使用它们彼此之间就更容易了。
安装
您可以通过 composer 安装此包
$ composer require glamorous/value-object
使用
数量(接口示例)
大多数人会这样说:“这是一个整数,为什么我们需要值对象?”那么您应该再次阅读一些关于值对象的文章。
use Glamorous\ValueObject;
final class Amount implements ValueObject
{
private $amount;
public __construct(int $amount)
{
if ($amount < 0) {
throw new \InvalidArgumentException('Amount must be above zero or zero');
}
$this->amount = $amount;
}
}
状态(枚举示例)
use Glamorous\Enum;
final class Status extends Enum
{
const OPEN = 'open';
const CLOSED = 'closed';
}
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 了解详细信息。要查看贡献者列表: 所有贡献者。
许可协议
MIT 许可协议(MIT)。请参阅 许可文件 了解更多信息。