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

Команда debug:serializer

Команда debug:serializer показывает, какие нормализаторы, денормализаторы и энкодеры доступны в сервисе сериализатора. Она помогает понять, какой класс будет выбран для преобразования конкретного объекта в массив или JSON.

Синтаксис

php bin/console debug:serializer [options]

Пример

Давайте создадим простую сущность и посмотрим, какой нормализатор будет использован для неё:

<?php namespace AppEntity; use SymfonyComponentSerializerAnnotationGroups; use SymfonyComponentSerializerAnnotationSerializedName; class Article { #[Groups(['read'])] #[SerializedName('title')] private string $name; #[Groups(['read'])] private text $text; #[Groups(['read'])] private datetime $createdAt; public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } public function getText(): text { return $this->text; } public function setText(text $text): void { $this->text = $text; } public function getCreatedAt(): datetime { return $this->createdAt; } public function setCreatedAt(datetime $createdAt): void { $this->createdAt = $createdAt; } } ?>

Теперь выполним команду для проверки сериализатора:

php bin/console debug:serializer

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

Symfony Serializer ================= Normalizers ----------- * DateTimeNormalizer * DateTimeZoneNormalizer * DateIntervalNormalizer * ObjectNormalizer * ArrayDenormalizer * JsonSerializableNormalizer * ProblemNormalizer * UidNormalizer Encoders -------- * JsonEncoder * XmlEncoder * YamlEncoder * CsvEncoder

Пример

Давайте сериализуем объект Article в JSON с помощью группы read:

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentSerializerSerializerInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_show')] public function show(SerializerInterface $serializer): Response { $article = new Article(); $article->setName('abcde'); $article->setText('article text'); $article->setCreatedAt(new DateTime('2024-01-01')); $json = $serializer->serialize($article, 'json', ['groups' => ['read']]); return new Response($json); } } ?>

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

{"title":"abcde","text":"article text","createdAt":"2024-01-01T00:00:00+00:00"}

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

  • команда debug:container,
    которая выводит информацию о сервисах контейнера
  • команда debug:autowiring,
    которая показывает доступные для автовайринга сервисы
  • команда make:serializer:normalizer,
    которая создаёт новый нормализатор
  • команда debug:config,
    которая выводит текущую конфигурацию бандла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить