据我所知,JMSSerializerBundle的反序列化在控制器获得post/put/修补程序请求时是否与symfony表单组件相同?
所以,要么我为一个UserType创建一个symfony自定义的UserType,当我收到一个请求时,我执行类似$form->handleRequest($request)之类的操作,或者我使用JMSSerializerBundle将请求反序列化到最终被存储的文档/实体。
有人有这两种方法的经验吗?目前我只熟悉形式..。我该选哪一个?
我所讨论的应用程序纯粹是Restful的,没有小枝html模板,FOSRestbundle正在执行所有的RESTful路由。
发布于 2014-07-04 11:46:44
在restfull中,我们通常使用符号串行化组件来处理实体的反序列化,然后使用Symfony Validator组件来确保实体在数据库中推送/更新之前满足所有必需的条件。工作非常好,比表单组件更轻。
无论如何,表单组件将无法反序列化json/xml,因此您将不得不使用序列化程序。
发布于 2017-08-16 02:14:20
Symfony\Form组件相对于JMS序列化程序的好处是,验证是在反序列化之前完成的,符合PHP 7的严格类型。示例-您传递一个数组而不是字符串,JMS创建和对象,而getter将从验证器引发一个\TypeError
而不是一个验证错误。
https://stackoverflow.com/questions/24572261
复制