phauthentic/attribute-serializer

dev-master 2024-02-25 16:49 UTC

This package is auto-updated.

Last update: 2024-08-25 17:51:51 UTC


README

PHP >= 8.1 phpstan Level 8 License: MIT

用于从带有 #[Serialize] 属性的对象中提取数据的序列化类。

此类提供了一个名为 serialize 的方法,通过从其属性和常量中提取数据(基于 #[Serialize] 属性),将对象转换为关联数组。

安装

composer require phauthentic/attribute-serializer

如何使用它?

#[Serialize()] 属性添加到属性或常量中。您可以通过为属性提供名称来更改结果数组中的属性名,例如使用 #[Serialize('other-name')]

class Example {
    #[Serialize('username')]
    private $name = 'serializer';
}

var_dump((new Serializer())->serialize(new Example()));
[
    'username' => 'serializer'
]

深数组点表示法

字段名可以使用点表示法动态重命名,甚至可以用于更深的数组结构。

class Example2 {
    #[Serialize('first.second')]
    private $name = 'serializer';
}

var_dump((new Serializer())->serialize(new Example2());
[
    'first' => [
        'second' => 'serializer'
    ]
]

ToArrayTrait

class Example3 {
    use ToArrayTrait;

    #[Serialize('username')]
    private $name = 'serializer';
}

var_dump((new Example3)->toArray());
[
    'username' => 'serializer'
]

许可证

版权所有 Florian Krämer

MIT 许可证 下发布。