# array_2_class **Repository Path**: vijay_0215/array_2_class ## Basic Information - **Project Name**: array_2_class - **Description**: 通过类结构定义与注解,从array生成类对象 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-06 - **Last Updated**: 2023-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # array2class ## 介绍 将普通数组转换为类对象,目标对象的构造函数必须是无参或者实现指定的工厂接口来构造。 从2.0开始的版本,直接使用 PHP8 的注解功能。 ## 特点 1. 支持枚举类型,如果类继承自 `MyCLabs\Enum\Enum` 则会进行判断; 1. 支持注解标明别名映射。 ## 安装教程 ```bash composer require dreamcat/array_2_class ``` ## 使用说明 首先定义一个输出的目标类,例如 ```php 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; } } ``` 然后调用执行如下代码 ```php use DreamCat\Array2Class\Array2ClassConverter; $converter = new Array2ClassConverter(); $data = ['name' => 'abc', 'key_word' => 'kkk', "a" => "as"]; $obj = $converter->convert($data, Pojo::class); ``` 执行完成后,`$obj` 的 `name` 被赋值为 `abc`,`keyWord` 被赋值为 `kkk`, `alias` 被赋值为 `as`。