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

Класс Yaml

Класс Yaml - это утилита для работы с форматом YAML. Он содержит статические методы parse и parseFile для преобразования YAML в PHP-массив, а также метод dump для обратного преобразования массива в YAML-строку.

Метод parse принимает первым параметром строку с YAML-содержимым. Метод parseFile принимает путь к файлу. Метод dump принимает массив данных и возвращает YAML-строку.

Синтаксис

Yaml::parse(string $yaml): array Yaml::parseFile(string $filename): array Yaml::dump(array $data): string

Пример

Давайте распарсим простую 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: 'abcde'\nage: 25"; $res = Yaml::parse($yaml); return new Response(json_encode($res)); } } ?>

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

{"name":"abcde","age":25}

Пример

Давайте преобразуем PHP-массив в 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 dump(): Response { $data = ['name' => 'abcde', 'age' => 25]; $res = Yaml::dump($data); return new Response($res); } } ?>

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

"name: abcde\nage: 25"

Пример

Давайте прочитаем данные из YAML-файла:

name: 'abcde' age: 25 active: true

Теперь распарсим этот файл в контроллере:

<?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 file(): Response { $res = Yaml::parseFile('../config/data.yaml'); return new Response(json_encode($res)); } } ?>

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

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

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

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