Нормализаторы
Дата обновления перевода 2023-06-29
Нормализаторы
Нормализаторы превращают объекты в массивы и наоборот. Они реализуют NormalizerInterface для нормализации (объекта в массив), и DenormalizerInterface для денормализации (массива в объект).
Нормализавторы подключаются в сериализаторе, путем их передачи в качестве первого аргумента:
1 2 3 4 5
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers);
Встроенные нормализаторы
Symfony включает в себя следующие нормализаторы, но вы также можете создать свой собственный нормализатор:
- ObjectNormalizer, чтобы нормализовать PHP-объект, используя компонент PropertyAccess;
- DateTimeZoneNormalizer для объектов DateTimeZone;
- DateTimeNormalizer для объектов, реализующих интерфейс DateTimeInterface;
- DateIntervalNormalizer для объектов DateInterval;
- DataUriNormalizer, чтобы пребразовать объекты SplFileInfo в URI данных;
- CustomNormalizer, чтобы нормализовать PHP-объект, используя объект, реализующий NormalizableInterface;
- FormErrorNormalizer для объектов, реализующих FormInterface, чтобы нормализовать ошибки форм;
- GetSetMethodNormalizer, чтобы
- нормализовать PHP-объект, используя методы геттера и сеттера объекта;
- PropertyNormalizer, чтобы
- нормализовать PHP-объект, используя PHP-отражение;
- ConstraintViolationListNormalizer для объектов, релизующих интерфейс ConstraintViolationListInterface;
- ProblemNormalizer для объектов FlattenException;
- JsonSerializableNormalizer, чтобы работать с объектами, реализующими интерфейс JsonSerializable;
- UidNormalizer преобразует объекты, реализующие AbstractUid, в строки, и денормализует строки uuid или ulid в Uuid или Ulid.