Backbone和PHP模型代码重复

时间:2012-04-17 10:20:37

标签: php architecture backbone.js singlepage

所以我决定采用我一直在研究的项目和项目管理系统,并将其从标准的多页面应用程序转换为单页面应用程序。在这个过程中,我查看了许多javascript MV * ish框架(ember,knockout,backbone等...)并决定使用backbone.js,因为它似乎是最灵活的解决方案,而且我已经使用了下划线。它的实用程序和模板系统都是js。

我这样做的一个最大问题是我在PHP模型和骨干模型中对模型和业务/域逻辑的潜在代码重复。

这只是我在使用这样的架构时付出的技术成本,还是我可以采取一些措施来减轻这种担忧?

2 个答案:

答案 0 :(得分:3)

您可能想看一下我之前回答涉及Node.js的问题:

Reusing backbone views/routes on the server when using Backbone.js pushstate for seo/bookmarking

我现在正在做的是使用Davis.js + Mustache + Java Spring MVC后备(基于我原来的问题:Single page Web App in Java framework or examples?)。

如果浏览器不支持Pushstate,那么我让服务器使用Java版本的Mustache(即标准Web 1.0)完成页面的整个呈现。如果浏览器确实支持Pushstate,那么浏览器将对该模型的JSON版本发出AJAX请求。然后,该模型呈现给客户端使用icanhz(即javascript胡子)。

如果您的逻辑的很大一部分是获取模型然后基于特定URL呈现它,那么这种方法非常有效。那就是你的业务逻辑“基于一些我将要呈现的URL”。这就是网络上大多数网站的工作方式(包括这个网站仍然是网络1.0)。显然,这不适合说实时聊天或HTML5游戏。

这里提到了这个设计的python版本:http://duganchen.ca/single-page-web-app-architecture-done-right/

我确定有人做过PHP版本。

答案 1 :(得分:1)

如果您在服务器和客户端中使用不同的语言,我认为不可能避免您关注的部分逻辑复制

如果您肯定想在服务器和客户端中使用相同的代码,则必须将所有代码移至唯一的通用语言:JavaScript。

有多个JS框架非常透明地集成了服务器和客户端之间的开发:derbymeteor,...