apie / serializer
Composer package of the apie library: serializer
Installs: 6 893
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=8.3
- apie/core: dev-main
- apie/type-converter: ^1.5.0
- psr/http-message: ^1.1
- symfony/http-foundation: ^7.2
Requires (Dev)
- apie/common-value-objects: dev-main
- apie/fixtures: dev-main
- apie/service-provider-generator: 0.11.3
- apie/text-value-objects: dev-main
- illuminate/support: *
- phpspec/prophecy-phpunit: ^2.2
- phpunit/phpunit: ^11.5.2
This package is auto-updated.
Last update: 2025-03-23 15:46:48 UTC
README
serializer
This package is part of the Apie library. The code is maintained in a monorepo, so PR's need to be sent to the monorepo
Documentation
The Apie serializer serializes stored data to the customers or backwards. It is very similar to the Symfony serializer, except the context array in Symfony serializer is replaced with a ApieSerializerContext which also contains method for recursive calls. It still has the same logic related to decoding/encoding/normalizing and denormalizing.
Normalization and denormalization Usage
The simples use is just calling the static method create or customize it with the constructor method:
use Apie\Core\Context\ApieContext; use Apie\Serializer\Serializer; $serializer = Serializer::create(); // returns new SerializedHashmap(['id' => 'example@example.com', 'password' => 'p@ssW0rd']) $serializer->normalize(new User('example@example.com', 'p@ssW0rd'), new ApieContext()); // returns new User('example.com', 'p@ssW0rd') $serializer->denormalizeNewObject( ['id' => 'example@example.com', 'password' => 'p@ssW0rd'], User::class, new ApieContext() );
Customization
To add your own normalization logic, you need to add a class implementing Apie\Serializer\Interfaces\NormalizerInterface. To add your own denormalization logic, you need to add a class implementing Apie\Serializer\Interfaces\DenormalizerInterface.