tleckie/value-object

PHP 值对象。用于在 PHP 中实现值对象 / 可空值对象的库

1.0.2 2021-05-09 09:07 UTC

This package is auto-updated.

Last update: 2024-09-13 15:39:35 UTC


README

Scrutinizer Code Quality Build Status Total Downloads Code Intelligence Status

创建您自己的值对象类型

您应该仅从 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