apie/serializer
Composer package of the apie library: serializer
Maintainers
Requires
- php: >=8.3
- apie/core: 1.0.0-RC2
- apie/type-converter: ^1.5.0
- psr/http-message: ^1.1
- symfony/http-foundation: ^7.2
Requires (Dev)
- apie/common-value-objects: 1.0.0-RC2
- apie/fixtures: 1.0.0-RC2
- apie/service-provider-generator: 0.11.3
- apie/text-value-objects: 1.0.0-RC2
- illuminate/support: *
- phpspec/prophecy-phpunit: ^2.2
- phpunit/phpunit: ^11.5.2
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 66d2a3ab8c5b1b2ed097a8f30cda975cbb5d331e
- Pieter Jordaan <pieter_jordaan.woop@hotmail.com>
This package is auto-updated.
Last update: 2026-06-07 20:11:26 UTC
README
serializer
👁 Latest Stable Version
👁 Total Downloads
👁 Latest Unstable Version
👁 License
👁 PHP Composer
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.
