dreamcat/array_2_class

将普通数组转换为类对象

v2.5.3 2023-09-13 09:02 UTC

This package is auto-updated.

Last update: 2024-04-07 05:09:39 UTC


README

介绍

将普通数组转换为类对象,目标对象的构造函数必须是无参或者实现指定的工厂接口来构造。

从2.0开始的版本,直接使用 PHP8 的注解功能。

特点

  1. 支持枚举类型,如果类继承自 MyCLabs\Enum\Enum 则会进行判断;
  2. 支持注解标明别名映射。

安装教程

composer require dreamcat/array_2_class

使用说明

首先定义一个输出的目标类,例如

class Pojo
{
    private string $name;
    #[\DreamCat\Array2Class\Annotation\ObjectAttribute("a")]
    private string $alias;
    /**
     * @var string
     */
    private ?string $keyWord;

    public function setName(string $name)
    {
        $this->name = $name;
    }
}

然后调用执行如下代码

use DreamCat\Array2Class\Array2ClassConverter;

$converter = new Array2ClassConverter();
$data = ['name' => 'abc', 'key_word' => 'kkk', "a" => "as"];
$obj = $converter->convert($data, Pojo::class);

执行完成后,$objname 被赋值为 abckeyWord 被赋值为 kkk, alias 被赋值为 as