design-patterns - 在 Controller 或服务层反序列化?

标签 design-patterns symfony

我正在使用 Symfony2 开发 REST API,它接收 JSON 格式的数据。

JSON转对象的正确位置在哪里:

  • Controller 将 JSON 转换为对象并调用服务方法传递一个 PHP 对象,该对象也返回一个对象?
  • Controller 将 JSON 传递给服务方法,它将 JSON 转换为对象,并在返回之前将结果对象转换为 JSON?

最佳答案

它绝对不属于服务层,因为它应该在模型对象方面工作。您可以在一个应用程序中拥有许多不同的 UI——HTML、REST、命令行——它们都将使用不同的格式进行数据交换。让服务层负责处理所有这些格式没有意义。

每种类型的 UI 都有自己的 Controller 层 - 或者在命令行 UI 的情况下是命令 - 这些 Controller 负责在将数据传递到服务层和返回之前将数据与模型对象进行相互转换。

具体如何操作——直接在 Controller 操作中,或委托(delegate)给其他服务,或使用 AOP——由你选择。只需将其置于服务层(即领域层)之外。

关于design-patterns - 在 Controller 或服务层反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744983/

相关文章:

ios - 具有适应不同屏幕分辨率的 View 的 MVC 模式

php - 我对 Web 开发中的 MVC 理解正确吗?

c++ - 原型(prototype)模式

php - 将 Docker 容器部署到 AWS 时运行数据库迁移命令

php - 为什么 Symfony 建议关闭 php_short_tags

django - NextJS 使用 Django API - 如何选择最佳模式

java - 在这种情况下如何使用Decorator Design?

symfony - FosElasticaBundle:如何转储传递给ElasticSearch的实际JSON?

php - 使用 OROPlatform 时如何测试我自己的代码?

php - 我应该如何处理 Doctrine 2 中与业务逻辑相关的数据定义(如状态类型)?