diff --git a/components/serializer.rst b/components/serializer.rst index f72d4e91638..d8ec54f7e92 100644 --- a/components/serializer.rst +++ b/components/serializer.rst @@ -511,6 +511,32 @@ There are several types of normalizers available: Objects are normalized to a map of property names to property values. +:class:`Symfony\\Component\\Serializer\\Normalizer\\JsonSerializableNormalizer` + This normalizer works with classes that implement :phpclass:`JsonSerializable`. + + It will call the :phpmethod:`JsonSerializable::jsonSerialize` method and + then further normalize the result. This means that nested + :phpclass:`JsonSerializable` classes will also be normalized. + + This normalizer is particularly helpful when you want to gradually migrate + from an existing codebase using simple :phpfunction:`json_encode` to the Symfony + Serializer by allowing you to mix which normalizers are used for which classes. + + Unlike with :phpfunction:`json_encode` circular references can be handled. + +:class:`Symfony\\Component\\Serializer\\Normalizer\\DateTimeNormalizer` + This normalizer converts :phpclass:`DateTimeInterface` objects (e.g. + :phpclass:`DateTime` and :phpclass:`DateTimeImmutable`) into strings. + By default it uses the RFC3339_ format. + +:class:`Symfony\\Component\\Serializer\\Normalizer\\DataUriNormalizer` + This normalizer converts :phpclass:`SplFileInfo` objects into a data URI + string (``data:...``) such that files can be embedded into serialized data. + +.. versionadded:: 3.1 + The ``JsonSerializableNormalizer``, ``DateTimeNormalizer`` and + ``DataUriNormalizer`` normalizers were added in Symfony 3.1 + Handling Circular References ---------------------------- @@ -653,3 +679,4 @@ you indicate that you're expecting an array instead of a single object. .. _`JMS serializer`: https://github.com/schmittjoh/serializer .. _Packagist: https://packagist.org/packages/symfony/serializer +.. _RFC3339: https://tools.ietf.org/html/rfc3339#section-5.8