phauthentic / attribute-serializer
dev-master
2024-02-25 16:49 UTC
Requires (Dev)
- php: ^8.1
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ~10.5
- squizlabs/php_codesniffer: ^3.9
This package is auto-updated.
Last update: 2024-11-25 18:15:58 UTC
README
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.