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

Метод serialize класса Serializer

Метод serialize класса Serializer преобразует PHP-данные в строку заданного формата. Первым параметром передаётся сериализуемое значение, вторым - формат (например 'json' или 'xml'), третьим - массив контекста с дополнительными настройками. Возвращается строка с сериализованными данными.

Синтаксис

$serializer->serialize($data, string $format, array $context = [])

Пример

Давайте сериализуем простой массив в формат JSON:

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

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

["a","b","c","d","e"]

Пример

Давайте сериализуем объект сущности Article в формат JSON:

<?php namespace App\Entity; class Article { private string $title; private string $text; private int $views; public function __construct(string $title, string $text, int $views) { $this->title = $title; $this->text = $text; $this->views = $views; } public function getTitle(): string { return $this->title; } public function getText(): string { return $this->text; } public function getViews(): int { return $this->views; } } ?>

Теперь сериализуем эту сущность в контроллере:

<?php namespace App\Controller; use App\Entity\Article; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\SerializerInterface; class ArticleController extends AbstractController { public function index(SerializerInterface $serializer): Response { $article = new Article('hello', 'abcde', 5); $res = $serializer->serialize($article, 'json'); return new Response($res); } } ?>

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

{"title":"hello","text":"abcde","views":5}

Пример

Давайте сериализуем данные в формате XML:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\SerializerInterface; class ArticleController extends AbstractController { public function index(SerializerInterface $serializer): Response { $data = ['title' => 'hello', 'views' => 5]; $res = $serializer->serialize($data, 'xml'); return new Response($res); } } ?>

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

<?xml version="1.0"?> <response> <title>hello</title> <views>5</views> </response>

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

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