Warning: You are browsing the documentation for Symfony 5.0, which is no longer maintained.

Read the updated version of this page for Symfony 5.3 (the current stable version).

Normalizers

5.0 version

Normalizers

Normalizers turn objects into arrays and vice versa. They implement Symfony\Component\Serializer\Normalizer\NormalizerInterface for normalizing (object to array) and Symfony\Component\Serializer\Normalizer\DenormalizerInterface for denormalizing (array to object).

Normalizers are enabled in the serializer passing them as its first argument:

use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;

$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers);

Built-in Normalizers

Symfony includes the following normalizers but you can also create your own normalizer:

  • Symfony\Component\Serializer\Normalizer\ObjectNormalizer to normalize PHP object using the PropertyAccessor component;
  • Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer for DateTimeZone objects
  • Symfony\Component\Serializer\Normalizer\DateTimeNormalizer for objects implementing the DateTimeInterface interface
  • Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer for DateInterval objects
  • Symfony\Component\Serializer\Normalizer\DataUriNormalizer to transform SplFileInfo objects in Data URIs
  • Symfony\Component\Serializer\Normalizer\CustomNormalizer to normalize PHP object using an object that implements Symfony\Component\Serializer\Normalizer\NormalizableInterface;
  • Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer to normalize PHP object using the getter and setter methods of the object;
  • Symfony\Component\Serializer\Normalizer\PropertyNormalizer to normalize PHP object using PHP reflection.
  • Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer for objects implementing the Symfony\Component\Validator\ConstraintViolationListInterface interface
  • Symfony\Component\Serializer\Normalizer\ProblemNormalizer for Symfony\Component\ErrorHandler\Exception\FlattenException objects
  • Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer to deal with objects implementing the JsonSerializable interface

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.