我正在构建一个网络应用程序,它将是一个Twitter风格的单页应用程序,可能 用户身份验证。 80%的交互发生在JavaScript的前端,并且在后端的帮助下,他们回答了从数据库提供数据...
到目前为止,我的想法是使用Symfony2,加上前端的MVC框架,如Backbone或Ember(更喜欢Ember,因为它似乎更有文档记录,而且通常更有条理,更容易)。
当我开始学习Symfony2时,我注意到Symfony2提供的许多内容对我的应用程序毫无用处。我真的不需要它的'视图,因为视图会被Javascript模板化,我也不需要它的路由器,因为它也将在前端使用带有JS的状态处理..
Symfony2只会被用作JSON响应机制,我猜教义还可以帮助那些主要不是后端人员的人轻松地进行查询,当然也可以用于身份验证。我猜FORMS也是由JavaScript处理的。
我已经看到很多关于Symfony2和骨干,RESTful等的其他问题。有很多不同的答案,有些人说你需要一个Bundle来创建RESTful API(为什么?) - 其他人说你需要Bundle来完成整个集成Backbone / Symfony2,其他人说你只需要用Symfony2查询JSON数据并将它们序列化并发回它们,所以没什么特别的..
所以我的问题是:似乎Symfony2对于这种APP来说太过分了。但考虑到这是一个机会学习项目,它真的是一个问题吗? (表现方面,或与前端不一致)。对此问题的一个问题是,您能否提供与一页网页应用程序集成的Symfony2的任何工作示例?我已经看到了不同的元素,但没有任何整体,所以我可以知道我想要实现什么样的代码。
答案 0 :(得分:3)
我不知道Symphony2,但听起来很像大多数ember + rails项目。这些应用程序使用很少的rails框架。人们可以认为较轻的框架更适合但不应成为问题。更重要的可能是你需要同时学习2个新框架。如果去w ember我将首先构建一个使用ember fixture-adapter的MVP,它根本没有后端。一旦你有了工作,你可以插入任何有意义的框架。 Fire Up Ember.js peepcode显示了如何以这种方式构建应用程序。
答案 1 :(得分:2)
如果你有很少的路由,一个瘦的模型,一点业务逻辑,没有模板,你可能会发现使用像Silex http://silex.sensiolabs.org/之类的东西更简单。您可以添加Silex所需的功能,而不是禁用Symfony2的功能。它们都使用相同的构建块,只是具有不同的精神。这是@hhamon关于使用Silex进行REST API https://speakerdeck.com/hhamon/designing-rest-api-with-silex的精彩演示。