Класс 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,
который валидирует и нормализует параметры