aeviiq/value-object

一个提供严格值对象的PHP库。

v1.0.1 2024-01-18 09:54 UTC

This package is auto-updated.

Last update: 2024-09-18 11:18:46 UTC


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.