xp-forge/yaml

YAML解析器

v8.1.0 2024-03-24 13:48 UTC

README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

使用示例

use org\yaml\{YamlParser, FileInput};

$result= (new YamlParser())->parse(new FileInput('.travis.yml'));
// [
//   language => "php"
//   php => [7, 7.1, 7.2, 7.3, 7.4, "nightly"]
//   matrix => [
//     allow_failures => [[
//       php => "nightly"
//     ]]
//   ]
//   before_script => ["curl ...", ...]
//   script => ["sh xp-run xp.unittest.TestRunner src/test/php"]
// ]

输入

  • org.yaml.FileInput(io.File|string $in) - 使用文件实例或文件名
  • org.yaml.ReaderInput(io.streams.TextReader $in) - 从文本读取器读取
  • org.yaml.StringInput(string $in) - 从字符串输入

多个文档

YAML源可以包含多个文档。`parse()` 方法只会解析第一个(或唯一一个)文档。要检索给定输入中的所有文档,请使用由 `documents()` 返回的迭代器。

use org\yaml\{YamlParser, FileInput};
use util\cmd\Console;

$parser= new YamlParser();
foreach ($parser->documents(new FileInput('objects.yml')) as $i => $document) {
  Console::writeLine('Document #', $i, ': ', $document);
}