Новое в Symfony 7.2: Улучшения Serializer

Источник: «New in Symfony 7.2: Serializer Improvements»
В Symfony 7.2 в Serializer добавлена поддержка подклассов DateTime, новый конвертер имён SnakeCaseToCamelCase, обновлённые константы UUID и опциональная интеграция Webhook

В Symfony 7.2 мы улучшили компонент Serializer, добавив несколько новых возможностей.

Поддержка подклассов DateTime

Текущий 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

UidNormalizer, входящий в состав компонента Serializer, предоставляет константы для различных форматов UID (NORMALIZATION_FORMAT_*). В Symfony 7.2 мы добавили новую константу UidNormalizer::NORMALIZATION_FORMAT_RFC9562, дополняющую список доступных форматов.

Отделение компонента Webhook от Serializer

Компонент Webhook использует Serializer для преобразования полезной нагрузки в контент JSON. Это жёстко закодированная зависимость, которой мы стараемся по возможности избегать в компонентах Symfony. Поэтому в Symfony 7.2 эта зависимость стала необязательной. Если Serializer не установлен, компонент Webhook вернётся к использованию родной функции json_encode() из PHP.

Комментарии


Дополнительные материалы

Предыдущая Статья

PHP 8.4: Curl: Новая опция CURLOPT_DEBUGFUNCTION

Следующая Статья

Новое в Symfony 7.2: Stateless CSRF