我已经将Ember和Backbone与Drupal一起使用-但未按照您的想法使用。
Ember和Backbone都是创建Web应用程序的好工具-但是Drupal并不是真正与它们一起使用的好工具。构建Web应用程序时,您所希望的是轻便快捷。您希望它能尽快给用户带来快速响应的感觉。您希望它轻巧以使其扩展更好。Drupal并不快-如果您要做的只是为Web应用程序提供REST API,则完整的Drupal引导程序将花费很长时间(与许多其他选择相比)。Drupal是PHP,这也使它非常占用RAM,从而限制了并发用户数。
那么,如果Drupal对此太不好了,为什么要使用它呢?
您真的应该将Drupal用于Drupal的优势-CMS。我过去对需要Web应用程序的项目所做的工作是使用Drupal在Web应用程序周围创建CMS。建立博客,内容列表之类的东西。我还创建了一些模块来定义一些后端内容,例如架构定义,以及使用Drupal有意义的其他内容,因为这使我的开发变得更加容易。
我没有使用Drupal创建Web应用程序所需的REST API,而是使用Node.js创建实际的REST API以及Web应用程序需要进行的其他检查AJAX调用。Node.js擅长于此。速度非常快(对象列表的响应时间低至30ms)。它也非常轻巧,因为服务器上的JavaScript使用异步操作,所以Node.js服务器通常可以处理数千个并发用户,而PHP可以处理100个并发用户。此外-由于Node.js是JavaScript,因此您可以重用很多代码服务器和客户端。您可以从字面上编写相同的验证代码,而不必同时在JavaScript中实现客户端和在PHP中实现服务器。如果您打算在几周内去慕尼黑的Drupal con-您应该考虑观看node.js演示文稿。
因此,如果您是开发人员,我强烈建议您进行类似的设置,并且仅将Drupal用于其真正擅长的领域。如果您想制作一个简单的Web应用程序并且不希望有太多用户,则可以使用Drupal作为后端,如果这样做可以帮助您节省开发时间。
更新Drupal 8
因此,随着Drupal 8的发布,上面的某些内容仍然适用,但与以前的扩展不同。Drupal 8就像Drupal 7一样,不是轻量级的工具,例如Node.js,Rails,Django等。由于JavaScript应用程序主要消耗各种服务,因此您仍应考虑Drupal是否是最好的工具。
使用Drupal 8,很多方面都得到了改进。服务是原生的,由Symphony驱动请求/响应。Drupal 8具有高级缓存和所有出色功能的许多有趣功能。但是,即使拥有Drupal 8的所有强大功能,它仍然比轻量级应用程序重得多。很难说Drupal 8可以成功用作快速的Web服务提供商。
因此,尽管所有这些都说完了,但我的一般建议仍然不变。作为Drupal开发人员,很容易将Drupal用于所有内容,因为我们对此非常熟悉。感觉很安全,Drupal 几乎可以用于任何事物。请记住,虽然可以将Drupal用于任何事物,但这并不意味着它是所有事物的最佳工具。进行合理的分析并了解您要在IT项目上使用的工具的优缺点,将始终是一个很大的帮助,并且可以帮助您避免陷入僵局,结果不符合您的期望。