(如果这不是发布此类问题的正确位置,我很乐意将其发布到其他地方)
我正在尝试构建一个交互式 Web 应用程序来管理公司资源。我有使用 Symfony2 的经验,但我对这个新应用程序有点碰壁。
我想让这个应用程序在客户端非常具有交互性。几乎是一个完整的单一网页应用程序。我以前的 Web 应用程序通常只使用带有 CRUD 页面的典型 MVC 模式。
在那些简单的应用程序中,我会有
/employees/
/employees/create
/employees/detail/45
/employees/update/45
/employees/delete/45
在这种应用程序中使用 symfony 会给我带来很多好处:
- 路由
- 安全性(CSRF 令牌)
- FormTypes 和表单处理
- 验证
- 与教义融合
- 枝条
特别是 Twig 中这样的功能非常令人耳目一新(因为我的模型是作为 Doctrine 实体构建的):
<p>{{ employee.getCurrentTask().description }}</p>
我现在面临的问题是我觉得 Symfony2 并不是真正为单一网页应用程序构建的。一旦我尝试添加一些 Ajax 功能,我就会遇到这些问题:
- CSRF 令牌无效
- jQuery中有太多不可重用的视图/表示逻辑
- 在 html 中添加数据属性以获取 id 等...
然后我研究了 Knockout.js 和 Angularjs,但后来我觉得失去了 Doctrine 和 Twig 的所有优势。无论如何,我必须在客户端重建我的模型,然后必须在两个不同的位置维护它们。
所以我想出了这个主意:
- 使用 Symfony2 模型和控制器将数据持久化到数据库,但让 symfony 中的控制器只发送 JSON 并接收 JSON(FOSRestBundle 可能吗?)
- 使用 AngularJS 或 KnockoutJS 之类的框架在客户端重建 JSON 数据以使用 2 路绑定。
但是如果我使用前端 js 框架,我将如何解决 Symfony 已经解决但无法使用的 Doctrine2 关系、表单验证、CSRF 等问题?
欢迎所有建议!