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

Метод parse класса Yaml

Метод parse класса Yaml принимает строку в формате YAML и возвращает соответствующее ей представление в виде массива PHP. Первым параметром передаётся разбираемая строка. Вторым параметром можно передать флаги парсера, например Yaml::PARSE_OBJECT или Yaml::PARSE_DATETIME.

Синтаксис

Yaml::parse(string $yaml, int $flags = 0): mixed

Пример

Давайте разберём простую строку YAML в массив:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class YamlController extends AbstractController { public function index(): Response { $yaml = "name: user\nage: 25\nactive: true"; $res = Yaml::parse($yaml); return new Response(json_encode($res)); } } ?>

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

{"name":"user","age":25,"active":true}

Пример

Давайте разберём YAML с вложенной структурой и списком:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class YamlController extends AbstractController { public function index(): Response { $yaml = "user:\n name: abcde\n roles:\n - admin\n - user"; $res = Yaml::parse($yaml); return new Response(json_encode($res)); } } ?>

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

{"user":{"name":"abcde","roles":["admin","user"]}}

Пример

Давайте передадим флаг Yaml::PARSE_DATETIME, чтобы дата преобразовалась в объект:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class YamlController extends AbstractController { public function index(): Response { $yaml = "created: 2024-01-01"; $res = Yaml::parse($yaml, Yaml::PARSE_DATETIME); return new Response(get_class($res['created'])); } } ?>

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

"DateTime"

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

  • класс Yaml,
    который разбирает и создаёт YAML-строки
  • метод dump,
    который преобразует массив в YAML-строку
  • метод parseFile,
    который разбирает YAML-файл
  • функция dump,
    которая выводит отладочную информацию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить