aeviiq / value-object
一个提供严格值对象的PHP库。
v1.0.1
2024-01-18 09:54 UTC
Requires
- php: ^8.1
- symfony/validator: ^5.4|^6.0
- thecodingmachine/safe: ^2.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.0
- psalm/plugin-phpunit: ^0.18.4
- roave/security-advisories: dev-master
- thecodingmachine/phpstan-strict-rules: ^1.0
- vimeo/psalm: ^5.4
README
原因
为了提供一个在PHP中创建值对象的简单方法。可以通过使用Symfony Validator组件(https://github.com/symfony/validator 和其文档 https://symfony.com.cn/doc/current/validation.html#constraints)进行验证。这也允许与Symfony Form组件轻松集成,因为值对象约束是静态定义的。
安装
composer require aeviiq/value-object
声明
<?php declare(strict_types=1); namespace Aeviiq\ValueObject\Value; use Aeviiq\ValueObject\AbstractString; use Aeviiq\ValueObject\Normalizer; use Symfony\Component\Validator\Constraints; final class Iban extends AbstractString { public static function getConstraints(): array { return [ new Constraints\Iban(), ]; } protected function normalize($value): string { return Normalizer::removeWhitespace($value); } }
使用
$iban = new Iban('Invalid value'); // Results in InvalidArgumentException $iban = new Iban('NL91 ABNA 0417 1643 00'); // Contains a valid Iban.