hradigital/php-datatypes

轻松构建和清理您的应用程序对象。

2.0.6 2022-03-27 17:12 UTC

This package is auto-updated.

Last update: 2024-09-27 22:59:58 UTC


README

主分支构建状态

Build Coverage Quality Downloads Licence Version PHP

代码用法

本包旨在为您提供一种简单的方法来完成此操作(以及更多),只需按如下方式构建您的对象

$user = new User([
    'id' => 123,
    'active' => true,
    'name' => ' John Doe ',
]);

echo $user->getId(); // (int) 123
echo $user->isActive(); // (bool) true
echo $user->getName(); // Prints ' John Doe '
echo $user->getName()->trim()->toUpper()->replace(' ', '-'); // Prints 'JOHN-DOE'
echo $user->getName(); // Prints ' John Doe ' again, as Attribute is immutable.

...

class User extends AbstractValueObject
{
    use HasPositiveIntegerIDTrait,
        HasActiveTrait,
        HasNameTrait;
}

此外,开箱即用,它将允许您执行以下操作

$user = new User([
    'id' => 123,
    'active' => true,
    'name' => ' John Doe ',
]);

echo json_encode($user); // {"id":123,"active":true,"name":"John Doe"}

$serialized = serialize($user);
$otherUser = unserialize($serialized);

printf($otherUser->toArray());
/*
[
    'id' => 123,
    'active' => true,
    'name' => 'John Doe',
]
*/

...等等。这将使您的对象从重复的状态管理代码中变得干净,从而让您能够将业务逻辑实现其中。

要了解更多关于代码的信息,请访问这里

关于

PHP 数据类型旨在以快速、平台无关的方式轻松创建您的值对象/实体/聚合,促进以下内容

  • 代码复用
  • 数据标准化
  • 类型提示强制执行
  • 完整数据序列化
  • 除了PHP本身外,没有第三方依赖。清洁/自依赖项目。

扩展AbstractValueObject的聚合/实体/值对象将使用为每个类属性预定义/测试的特质构建,使您的类定义清洁/自由,以便实现业务逻辑。

这还将允许您使用来自数据库、Web服务、事件有效负载等的数据重新使用/加载您的对象。

尽可能多地,类属性的获取器/访问器将返回值对象而不是原始类型。所有这些数据类型也将包含在该包中,因为它没有任何依赖项,除了PHP本身。

要了解如何使用此包,请参阅AbstractValueObject文档。

灵感

一些启发这个项目的项目主要包括Nikita Popov的标量对象,但也包括Martin Helmich的标量类Michael Hall的数据类型

由于“无第三方依赖”规则,此包将使用一些更流行的数据类型的简化版本。以下是一些示例

需求与安装

  • PHP >= 7.4||8.*
composer require hradigital/php-datatypes

使用

有关如何使用这些数据类型的更多信息,请参阅项目的使用说明以及这里的一些实现示例。

贡献

向项目贡献很容易,欢迎并感谢贡献。

显然,单独维护项目会更困难,但将尽力保持并改进它,因为我计划将其用作其他项目的依赖项。