In Symfony 7.2, we improved the Serializer component with some new features.
Support DateTime
Subclasses
The current DateTimeNormalizer
used by the Serializer component, only normalizes
objects of types \DateTimeInterface
, \DateTimeImmutable
, and \DateTime
.
In Symfony 7.2, we improved this normalizer to process any object that extends
\DateTimeInterface
.
Add a SnakeCase Name Converter
Symfony Serializer already includes a camelCase
to snake_case
name converter.
In Symfony 7.2, we've added the SnakeCaseToCamelCaseNameConverter
class to
perform the opposite conversion (e.g. last_name
-> lastName
).
Indirectly related, we've also deprecated the AdvancedNameConverterInterface
in favor of the existing NameConverterInterface
(see PR #58308).
Add new UUID Constants
The UidNormalizer
included in the Serializer component provides constants for
various UID formats (NORMALIZATION_FORMAT_*
). In Symfony 7.2 we've added new
one UidNormalizer::NORMALIZATION_FORMAT_RFC9562
to complete the list of available formats.
Decouple the Webhook Component from the Serializer
The Webhook component uses the Serializer to turn payloads into JSON contents.
This is a hardcoded dependency, which we try to avoid in Symfony components as much
as possible. That's why in Symfony 7.2 this dependency is now optional. If the
Serializer is not installed, the Webhook component will fall back to using the
native json_encode()
function from PHP.
A bit of nitpicking, anyway... This sentence "This is a hardcoded dependency, that we try to avoid" should be instead "This is a hardcoded dependency, which we try to avoid"
@Massimiliano, you are right! I've just updated the blog post. Thanks.