Нормалізатори
Дата оновлення перекладу 2023-06-23
Нормалізатори
Нормалізатори перетворюють об'єкти на масиви і навпаки. Вони реалізують 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 в Uuuid або Ulid.