Normalizers
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 PropertyAccess component;Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer
for[DateTimeZone](https://www.php.net/manual/en/class.datetimezone.php "DateTimeZone")
objectsSymfony\Component\Serializer\Normalizer\DateTimeNormalizer
for objects implementing the[DateTimeInterface](https://www.php.net/manual/en/class.datetimeinterface.php "DateTimeInterface")
interfaceSymfony\Component\Serializer\Normalizer\DateIntervalNormalizer
for[DateInterval](https://www.php.net/manual/en/class.dateinterval.php "DateInterval")
objectsSymfony\Component\Serializer\Normalizer\DataUriNormalizer
to transform[SplFileInfo](https://www.php.net/manual/en/class.splfileinfo.php "SplFileInfo")
objects in Data URIsSymfony\Component\Serializer\Normalizer\CustomNormalizer
to normalize PHP object using an object that implementsSymfony\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 theSymfony\Component\Validator\ConstraintViolationListInterface
interfaceSymfony\Component\Serializer\Normalizer\ProblemNormalizer
forSymfony\Component\ErrorHandler\Exception\FlattenException
objectsSymfony\Component\Serializer\Normalizer\JsonSerializableNormalizer
to deal with objects implementing the[JsonSerializable](https://www.php.net/manual/en/class.jsonserializable.php "JsonSerializable")
interface
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.