1

我目前正在努力寻找适合系统的架构,但我想我需要 Symfony 专家的帮助。我正在构建一个非常简单的应用程序,它有两个接口:普通的 Web 应用程序(HTML 表单等)和一个 RESTful API。两者并不相同,但它们共享很多 CRUD 操作。

我有两个捆绑包,每个捆绑包都包含特定于每个接口的控制器。一种使用 Form 组件创建和验证表单,另一种只是以任何格式(JSON 或 XML)从请求中解析数据。然而,这很糟糕。这两个接口之间有很多共享代码,例如参数绑定和验证。尽管模型相同,但我从用户那里接收数据并与模型交互的方式是纯粹的反 DRY。

有没有办法将输入绑定和验证带入一个抽象的操作中?我首先创建了一个从每个控制器接收请求对象的类,验证每个参数并与模型通信。它对 API 非常有用,但我完全失去了 Form 组件的优势。

4

1 回答 1

0

您可以尝试为每个操作使用 2 条不同的路线,但执行相同的实际操作

blah_blah.blahbadeblah:
    pattern: /blah/
    defaults:
        _controller: "BlahBlahBundle:Blah:index"
        json: false

blah_blah.blahbadeblah_json:
    pattern: /json/blah/
    defaults:
        _controller: "BlahBlahBundle:Blah:index"
        json: true

然后您可以在控制器末尾进行检查,json然后使用完整模板或包含最少内容的 JsonResponse 进行响应。

于 2013-03-31T05:16:08.760 回答