FastAdmin php 解析 yaml 1.2 的问题
FastAdmin php 解析 yaml 1.2 的问题
问题
在 QQ 群里一位小伙伴提问 yaml 解析错误,y
变成了 1
。
size:
x: 100
y: 200
被解析成
size:
x: 100
1: 200
分析过程
初步查看是 y 键也被解析器自动替换成了布尔值。
到 yaml 的官网查看,的确也没有问题,因为规范也是这么写的。
y|Y|yes|Yes|YES|n|N|no|No|NO
|true|True|TRUE|false|False|FALSE
|on|On|ON|off|Off|OFF
起初也没觉得是问题,最多觉得这个也太宽泛了。
然后发现在 github 中有人也提出这个问题[1],说 yaml 1.2 有更加规范了一点。
Since 1.0.0 we have removed support of automagic y => true conversion in the spirit of YAML 1.2 after some talks with YAML core developers.
查看了 yaml 最新规范,的确和 1.1 有差别[2],从这个差别中可以看出,针对 boolean 范围作了限制,只可以为 true, True, TRUE
。
继续查找资料,发现 php PECL 扩展库的 yaml 只支持 yaml 1.1 的解析,这里有一个坑,以为这个 php-yaml[3] 的版本是 yaml 版,其实这里的版本是 php-yaml 的解析软件版本,php-yaml 只针对 yaml1.1 的解析。
那如果需要让 php 解析 yaml 1.2 怎么办呢?
我们继续查找,再次找到一个 symfony/yaml
php composer 组件,找到官方的说明[4],验证了 这个 php composer 组件支持的是 yaml 1.2,不会把小伙伴的 y 替换成为 1。
Booleans
Booleans in YAML are expressed with true and false.
最后小伙伴引入了 symfony/yaml
解决了这个 yaml 解析问题。
原文地址: https://www.cnblogs.com/F4NNIU/p/17190099.html (禁止转载)
所有文章为原创,如非授权,请勿转载。
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2019-03-07 RequireJS 学习资料收集
2018-03-07 jQuqery append 和 after 区别