[英]Using json_decode vs JsonDecode in Symfony
我是Symfony应用程序开发领域的一个相对较新的对象。 我目前在Symfony 2.8中工作,我经常在同事中发现有关使用通用PHP函数(例如json_decode或json_encode)与Symfony自己的JsonDecode和JsonEncode的争论 。 经常有人告诉我,我们不使用json_encode或json_decode,而必须使用Symfony提供的编码器类JsonEncode和JsonDecode来实现相同的目的。 我很好奇的知道
为支持Symfony编码器而放弃使用此类通用函数真的重要吗?
它对性能有任何帮助吗?
这样的建议只是更好的编码策略的一部分,还是在代码中使用json_encode,有任何不利之处吗?
我真的很想知道这个炒作的背后是什么,欢迎您提供任何帮助。
提前致谢 !
1)我想,由于Symfony文档的Symfony Best Practices部分中没有涉及该主题的单词-否,此类功能的使用不是强制性的-您可以选择更适合自己的方式,但是可以做到这一点您的代码对于更改所使用的PHP版本更具可持续性,您将在回答下一个问题时看到。
2)不,不是-它只是json_decode和json_encode的包装,并提供了一些其他工具。 如果是JsonDecoder,它将Json Decoder的默认选项与上下文合并,传递给函数并解析php版本之间的json_decode签名。
3)我认为使用json_decode的唯一缺点是,如果在PHP版本> = 5.4中使用四个参数传递给它的参数集传递给代码,则突然决定更改版本项目中的PHP代码小于5.4,但使用json_encode则没有。 对我来说,这只是更好的编码策略的一部分,无非就是为您提供由Symfony项目贡献者团队制作的轻松快捷的工具。
如果您确实要实现相同的结果,那么比使用PHP的本机json_decode
。 因为它需要与Symfony序列化器组件一起使用才能利用Symfony的编码器。 但是,您可以创建自己的编码器以与Symfony的序列化器一起使用。
它对性能有任何帮助吗?
不。它增加了开销,因为它基本上增加了额外的功能并将其包装在PHP的本机json_decode
周围。 链接到当前代码。
为支持Symfony编码器而放弃使用此类通用函数真的重要吗?
简短的答案是“否”,但真正的答案要复杂得多。 Symfony的编码器类在处理实体时具有一些优势,在较新版本的Symfony中尤其如此。 如果您将项目设置为使用Symfony序列化程序组件,则可能值得这样做。 如果您编写自己的编码器,甚至更多。
这样的建议仅仅是更好的编码策略的一部分,还是在代码中使用json_encode,有什么弊端?
缺点是您可能必须编写更多代码以反序列化对象以匹配您的实体。 好处是代码不会与Symfony耦合,并且在需要时更易于移植。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.