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

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

Метод parseFile класса Yaml читает указанный файл и разбирает его содержимое как YAML. Первым параметром передаётся путь к файлу. Вторым необязательным параметром можно передать флаг для кэширования результата разбора. Метод возвращает PHP-массив или скалярное значение в зависимости от содержимого файла.

Если файл не существует или содержит синтаксическую ошибку, метод выбрасывает исключение ParseException.

Синтаксис

Yaml::parseFile(string $filename, int $flags = 0): mixed

Пример

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

title: 'article' count: 5 enabled: true

Теперь прочитаем этот файл в PHP-коде:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class ArticleController extends AbstractController { public function index(): Response { $res = Yaml::parseFile('../config/custom.yaml'); return new Response(json_encode($res)); } } ?>

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

{"title":"article","count":5,"enabled":true}

Пример

Давайте прочитаем вложенную структуру и выведем одно из значений:

user: name: 'abcde' age: 30 roles: - 'admin' - 'user'

Прочитаем файл и получим значение поля name:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class UserController extends AbstractController { public function index(): Response { $res = Yaml::parseFile('../config/user.yaml'); return new Response($res['user']['name']); } } ?>

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

abcde

Пример

Давайте передадим второй параметр Yaml::PARSE_OBJECT_FOR_MAP, чтобы получить объект вместо массива:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Yaml\Yaml; class ConfigController extends AbstractController { public function index(): Response { $res = Yaml::parseFile('../config/custom.yaml', Yaml::PARSE_OBJECT_FOR_MAP); return new Response($res->title); } } ?>

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

article

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

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