fasano/phprimitives-symfony

Symfony extension for PHPrimitives.

Maintainers

Package info

github.com/n-fasano/phprimitives-symfony

pkg:composer/fasano/phprimitives-symfony

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.1 2026-03-22 19:06 UTC

This package is auto-updated.

Last update: 2026-03-22 19:07:26 UTC


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.