phauthentic/attribute-serializer

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

This package is auto-updated.

Last update: 2024-04-25 17:10:06 UTC


README

PHP >= 8.1 phpstan Level 8 License: MIT

Serializer class for extracting data from objects annotated with the #[Serialize] attribute.

This class provides a method, serialize, to transform an object into an associative array by extracting data from its properties and constants based on the #[Serialize] attribute.

Installation

composer require phauthentic/attribute-serializer

How to use it?

Add the #[Serialize()] attribute to the property or constant. You can rename the property in the resulting array by providing a name to the attribute #[Serialize('other-name')].

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

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

Dot notation for deep arrays

Field names can be dynamically renamed, even into deeper array structures, by using the dot notation.

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'
]

License

Copyright Florian Krämer

Licensed under the MIT license.