dreamcat / array_2_class
将普通数组转换为类对象
v2.5.3
2023-09-13 09:02 UTC
Requires
- php: >=8
- dreamcat/property_analysis: ~2,>=2.1
- dreamcat/utils: ~2
- myclabs/php-enum: ~1
Requires (Dev)
- phpunit/phpunit: ~9
README
介绍
将普通数组转换为类对象,目标对象的构造函数必须是无参或者实现指定的工厂接口来构造。
从2.0开始的版本,直接使用 PHP8 的注解功能。
特点
- 支持枚举类型,如果类继承自
MyCLabs\Enum\Enum
则会进行判断; - 支持注解标明别名映射。
安装教程
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);
执行完成后,$obj
的 name
被赋值为 abc
,keyWord
被赋值为 kkk
, alias
被赋值为 as
。