dallgoot / yaml
提供YAML内容的加载器、卸载器和API。加载器构建PHP 8.x中的等效数据类型
0.9.1.2
2023-12-30 01:42 UTC
Requires
- php: >=8.1.14
- ext-json: *
- ext-pcre: *
- ext-spl: *
- lib-pcre: *
Requires (Dev)
- ext-reflection: *
- phan/phan: *
- phpmetrics/phpmetrics: *
- phpunit/phpunit: *
This package is auto-updated.
Last update: 2024-08-30 01:26:13 UTC
README
PHP库,用于将YAML文件加载和解析为一致的PHP数据类型
安装
- 依赖项仅用于构建文档或进行代码贡献,因此“--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