lbacik / value-object
简单的值对象实现
v1.0
2022-04-03 08:56 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: 3.*
This package is not auto-updated.
Last update: 2024-09-29 20:49:54 UTC
README
安装
packagist 上的值对象:[https://packagist.org.cn/packages/lbacik/value-object](https://packagist.org.cn/packages/lbacik/value-object)。要安装它,可以使用 [composer](https://getcomposer.org.cn)
composer require lbacik/value-object
示例
以下示例使用断言,但当然不是强制性的 :)
declare(strict_types=1); use Sushi\ValueObject\Invariant; use Sushi\ValueObject; use function PHPUnit\Framework\assertGreaterThanOrEqual; use function PHPUnit\Framework\assertIsInt; use function PHPUnit\Framework\assertIsString; class ExampleValueObject extends ValueObject { private const NAME_MIN_LENGTH = 4; public function __construct( public readonly string $name, public readonly int $age ) { parent::__construct(); } #[Invariant] protected function validateName(): void { assertGreaterThanOrEqual(self::NAME_MIN_LENGTH, mb_strlen($this->name)); } #[Invariant] protected function validateAge(): void { assertIsInt($this->age); assertGreaterThanOrEqual(0, $this->age); } } $valueObjectOne = new ExampleValueObject(name: "FooBar", age: 30);
有关 更多信息,请访问:[https://lbacik.github.io/php-sushi](https://lbacik.github.io/php-sushi)(即将更新!)