tleckie / value-object
PHP 值对象。用于在 PHP 中实现值对象 / 可空值对象的库
1.0.2
2021-05-09 09:07 UTC
Requires
- php: ^8
Requires (Dev)
- friendsofphp/php-cs-fixer: v3.0.0-beta.2
- infection/infection: ^0.21.5
- phpunit/phpunit: ^9.5
README
创建您自己的值对象类型
您应该仅从 ValueObject 类扩展
<?php /** * Class Age */ class Age extends ValueObject { }
比较值对象
<?php /** * Class Age */ class Age extends ValueObject { } $john = new Age(34); $mario = new Age(34); $raquel = new Age("34"); $john->equals($mario); // true $john->equals($raquel); // false $john->equals(new FirstName('Mario')); // false $raquel->value(); // "34"
强制基本类型
重写 value() 方法以指示返回的基本类型。
<?php /** * Class Age */ class Age extends ValueObject { /** * @return int */ public function value(): int { return parent::value(); } } $raquel = new Age("34"); $mario = new Age(34); $raquel->value(); // int 34 $mario->equals($raquel); // true (string)$mario; // string "34"
可空值对象
如果您的对象可以包含 null 值,您可以从 NullableValueObject 类扩展
<?php /** * Class Age */ class Age extends NullableValueObject { } // That's all! I hope this helps you