Symfonyob娱乐下载 2.6新增功能:YAML组件支持对象映射
2014年6月20日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
扎卡里·通而且尼古拉斯Grekas
在# 10552.
YAML组件增加了在PHP应用程序中解析和转储YAML格式文件的支持。尽管它没有实现完整的YAML 1.2规范但是,它支持它的大多数特性。
ob娱乐下载Symfony 2.6将引入对新的YAML特性的支持:对象映射.在以前的版本中,解析器为映射返回关联PHP数组({'key1': 'value1', 'key2': 'value2'}
).当YAML被序列化为其他格式(如JSON)时,这可能会带来一些麻烦。现在,当用户启用对象映射支持时,映射由stdClass ()
对象,而不是常规数组。
为了启用对对象映射的支持,必须传递真正的
属性的新第四个参数parse ()
方法。默认值为假
保持向后兼容性。这里有一些新的例子parse ()
方法的行为:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
使用ob娱乐下载\组件\Yaml\解析器;$yaml=新解析器();$yaml->解析('[foo, [bar, foo]]',假,假,真正的);// output: array('foo', array('bar', 'foo'))$yaml->解析('[{foo: {bar: foo}}]',假,假,真正的);/ /输出:阵列((对象)数组(“foo”= >(对象)数组(“酒吧”= >“foo”)))$yaml->解析('{foo: bar, bar: {}}',假,假,真正的);/ /输出:(对象)阵列(“foo”= >“酒吧”,“酒吧”= >新\ stdClass ())$yaml->解析('{foo: bar, bar: {}}',假,假,假);/ /输出:(对象)阵列(“foo”= >“酒吧”,“酒吧”= >阵列())$yaml->解析('{foo: [], bar: {}}',假,假,真正的);/ /输出:(对象)阵列(“foo”= >数组(),'酒吧' = >新\ stdClass ())$yaml->解析('{foo: [], bar: {}}',假,假,假);/ /输出:(对象)阵列(“foo”= >()数组,数组'酒吧' = > ())
这个新特性是由扎卡里·通而且尼古拉斯Grekas在公关# 10552.
发表在#生活在边缘
评论
@Denis,说实话,我看到你的方法更完整,但我真的不知道返回StdClass是否是一个“足够好的解决方案”。
也许您可以在Symfony官方存储库上创建一个问题,以获得来自社区的反馈?欧宝体育平台怎么样ob娱乐下载
也许您可以在Symfony官方存储库上创建一个问题,以获得来自社区的反馈?欧宝体育平台怎么样ob娱乐下载
谢谢你的反馈,哈维尔!
正如你所建议的,我将在今天晚些时候向Symfony回购中添加一个新问题。ob娱乐下载
正如你所建议的,我将在今天晚些时候向Symfony回购中添加一个新问题。ob娱乐下载
Denis-Florin Rendler is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now伟大的功能确实有,但我想知道,如果它不是更好的默认情况下返回一个对象,实现ArrayAccess接口向后兼容,并完全放弃其他参数?
这样我们就可以返回一个实现自定义接口的自定义对象,而不是一个简单的stdClass。A我认为这种情况有很多可能性,你同意吗?
谢谢。