РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
958 of 1361 menu

Метод supportsNormalization

Метод supportsNormalization принадлежит классу Serializer и проверяет, поддерживает ли сериализатор нормализацию переданных данных. Первым параметром передаётся значение, которое нужно проверить. Вторым необязательным параметром передаётся формат в виде строки. Метод возвращает true, если хотя бы один зарегистрированный нормализатор может обработать переданные данные, и false в противном случае.

Синтаксис

public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool

Пример

Давайте проверим, поддерживает ли сериализатор нормализацию объекта:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Encoder\JsonEncoder; class ArticleController extends AbstractController { public function index(): Response { $serializer = new Serializer( [new ObjectNormalizer()], [new JsonEncoder()] ); $res = $serializer->supportsNormalization(new \stdClass()); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

true

Пример

Давайте проверим нормализацию скалярного значения, например строки:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Encoder\JsonEncoder; class ArticleController extends AbstractController { public function index(): Response { $serializer = new Serializer( [new ObjectNormalizer()], [new JsonEncoder()] ); $res = $serializer->supportsNormalization('abcde'); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

false

Пример

Давайте проверим нормализацию массива с указанием формата:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Encoder\JsonEncoder; class ArticleController extends AbstractController { public function index(): Response { $serializer = new Serializer( [new ObjectNormalizer()], [new JsonEncoder()] ); $data = ['a', 'b', 'c', 'd', 'e']; $res = $serializer->supportsNormalization($data, 'json'); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

true

Смотрите также

  • класс Serializer,
    который выполняет сериализацию и десериализацию данных
  • метод supportsDenormalization,
    который проверяет поддержку денормализации
  • метод normalize,
    который нормализует объект в массив
  • метод serialize,
    который сериализует данные в указанный формат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить