dallgoot/yaml

提供YAML内容的加载器、卸载器和API。加载器构建PHP 8.x中的等效数据类型

资助包维护!
dallgoot

0.9.1.2 2023-12-30 01:42 UTC

This package is auto-updated.

Last update: 2024-08-30 01:26:13 UTC


README

Build Status PHP from Packagist Packagist Maintainability Scrutinizer Code Quality Code Coverage

PHP库,用于将YAML文件加载和解析为一致的PHP数据类型

Dallgoot/Yaml Library

安装

  • 依赖项仅用于构建文档或进行代码贡献,因此“--update-no-dev”可防止下载和管理您可能不会使用的包。

您首先需要Composer和PHP ^8.1.14

composer require --update-no-dev dallgoot/yaml

使用方法

请参阅示例文件夹

特性

  • 一致的 PHP数据类型
    • 对象用于映射
    • 数组用于序列
    • 常见的标量:字符串、整数、浮点数、INF、NAN
    • JSON、DateTime(可选)、等
  • 特定类型(对象)
    • YamlObject用于每个Yaml内容(多文档YAML是YamlObject的数组)
    • Compact用于紧凑/简短YAML语法
    • Tagged对象当标签不可确定时
  • 从一些解析错误中恢复
  • 对制表符容忍
  • 调试级别
    • 1:打印每个行的节点类型类并退出
    • 2:打印加载器全局树结构并退出
    • 3:打印每个文档的NodeList并退出

支持

  • YAML规范版本1.2
  • 多行值(简单|双引号或非双引号,紧凑映射|序列或JSON)
  • 内容中的多个文档(文件或字符串)
  • 映射和序列的紧凑语法
  • 注释(尚未实现)
  • 引用(默认启用)
  • 带有行为定制的标签(通过实现Tag/SchemaInterface覆盖或指定自定义)

与其他PHP Yaml库相比有何不同?

  • 一致的数据类型(有关说明,请参阅coherence.md
  • JSON格式验证(选项,注意:如果按PHP函数json_encode有效)
  • 复杂映射(注意:键是JSON格式的字符串)
  • 真正的引用行为:更改引用值会修改其他引用调用

贡献

目前只审查有关错误修复的贡献。在将YAML的读写视为无错误(并实现了所有当前选项)之后,将处理功能请求

待办事项

  • 代码覆盖率:目标100%
  • 与其他库的基准测试

改进

  • API每个功能的示例
  • 为每个YAML规范实现特定的单元测试。无效情况(不应发生的情况)
  • DUMPER
    • 实现/验证Dumper::Options
  • 更精确的错误识别(Yaml验证)以及YAML内容中的说明
  • Unicode检查(??)
  • 选项:将日期解析为PHP DateTime对象
  • 选项:强制重命名不是有效PHP属性名的键名
  • 标签:为'php/object'提供正确命名空间的函数
  • NEON兼容性???
  • 使YamlObject不可变

性能

- TBD
- improved memory using SplFixedArray instead of regular arrays where possible

赞助商

非常感谢:Buy Me A Coffee

谢谢