Новое в Symfony 7.2: Улучшения Serializer
DateTime
, новый конвертер имён SnakeCaseToCamelCase
, обновлённые константы UUID и опциональная интеграция WebhookВ Symfony 7.2 мы улучшили компонент Serializer, добавив несколько новых возможностей.
Поддержка подклассов DateTime
- Pull Request: [Serializer] Support subclasses of
DateTime
andDateTimeImmutable
#57793 Attila Szeremi
Текущий DateTimeNormalizer
, используемый компонентом Serializer, нормализует только объекты типов \DateTimeInterface
, \DateTimeImmutable
и \DateTime
. В Symfony 7.2 мы улучшили этот нормализатор, чтобы он мог обрабатывать любой объект, расширяющий \DateTimeInterface
.
Добавлен конвертер имён SnakeCase
Symfony Serializer уже включает в себя конвертер имён из camelCase
в snake_case
. В Symfony 7.2 мы добавили класс SnakeCaseToCamelCaseNameConverter
для выполнения обратного преобразования (например, last_name
-> lastName
).
Косвенно с этим связано то, что мы также отказались от интерфейса AdvancedNameConverterInterface
в пользу существующего интерфейса NameConverterInterface
(см. PR #58308).
Добавлены новые константы UUID
- Pull Request: [Serializer][Uid] Add the
Uuid::FORMAT_RFC_9562
andUidNormalizer::NORMALIZATION_FORMAT_RFC9562
constants #58246 Alexandre Daubois
UidNormalizer
, входящий в состав компонента Serializer, предоставляет константы для различных форматов UID (NORMALIZATION_FORMAT_*
). В Symfony 7.2 мы добавили новую константу UidNormalizer::NORMALIZATION_FORMAT_RFC9562
, дополняющую список доступных форматов.
Отделение компонента Webhook от Serializer
- Pull Request: [Webhook] decouple the Webhook component from the Serializer component #57881 Christian Flothmann
Компонент Webhook использует Serializer для преобразования полезной нагрузки в контент JSON. Это жёстко закодированная зависимость, которой мы стараемся по возможности избегать в компонентах Symfony. Поэтому в Symfony 7.2 эта зависимость стала необязательной. Если Serializer не установлен, компонент Webhook вернётся к использованию родной функции json_encode()
из PHP.