Новое в Symfony 7.2: Улучшения Serializer
DateTime, новый конвертер имён SnakeCaseToCamelCase, обновлённые константы UUID и опциональная интеграция WebhookВ Symfony 7.2 мы улучшили компонент Serializer, добавив несколько новых возможностей.
Поддержка подклассов DateTime
- Pull Request: [Serializer] Support subclasses of
DateTimeandDateTimeImmutable#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_9562andUidNormalizer::NORMALIZATION_FORMAT_RFC9562constants #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.