apie/serializer

Composer package of the apie library: serializer

dev-main 2025-03-18 22:51 UTC

This package is auto-updated.

Last update: 2025-03-23 15:46:48 UTC


README

serializer

Latest Stable Version Total Downloads Latest Unstable Version License PHP Composer

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.