fasano / phprimitives-symfony
Symfony extension for PHPrimitives.
1.0.1
2026-03-22 19:06 UTC
Requires
- fasano/phprimitives: ^1.0
- symfony/serializer: ^8.0
README
Symfony Serializer integration for PHPrimitives.
Installation
composer require fasano/phprimitives-symfony
Setup
Register the denormalizer as a tagged service in services.yaml:
Fasano\PHPrimitives\Symfony\PrimitiveDenormalizer: tags: - { name: serializer.normalizer }
Usage
Any class implementing Primitive will be automatically denormalized via its construct() method. Primitive properties are denormalized directly from their scalar backing values.
use Symfony\Component\Serializer\SerializerInterface; final readonly class UserDto { public function __construct( public Email $email, public Age $age, ) {} } $user = $serializer->denormalize([ 'email' => 'john.doe@example.com', 'age' => 21, ], UserDto::class);
Normalization
Normalization (serializing primitives back to scalars) is handled out of the box by PHPrimitives' built-in JsonSerializable support, no additional normalizer needed.