apie/serializer
Apie Serializer converts domain objects to stored/customer-facing data and back. Similar to Symfony Serializer but uses ApieSerializerContext for recursive calls. Supports normalize/denormalize, encoding/decoding, and easy extension via custom Normalizer and Denormalizer interfaces.
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
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.
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()
);
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.
How can I help you explore Laravel packages today?