如何构建 Javascript 架构以补充 PHP MVC Web 应用程序?
Posted
技术标签:
【中文标题】如何构建 Javascript 架构以补充 PHP MVC Web 应用程序?【英文标题】:How to structure Javascript architecture to complement a PHP MVC web app? 【发布时间】:2010-12-07 21:44:57 【问题描述】:我正在为 Web 应用迭代开发一种新的 javascript 架构。之前的迭代有很多内联代码,分散的包含,没有 .js 文件的目录结构,所有东西都在全局命名空间中。我的目标是:将脚本包含在页脚中,将所有内容保存在应用程序命名空间/对象中,将组织添加到 .js 文件中,并将所有应用程序特定文件压缩到一个 bundle.js 中
我正在尝试采用基于 Nicholas Zakas 的模块化方法:“Scalable JavaScript Application Architecture”http://www.yuiblog.com/blog/2009/09/17/video-bayjax-sept-09/
网站目前的结构是这样的
/app
/models
/views
/home
/auth
/meta
about.tpl
contact.tpl
privacy.tpl
/controllers
home.php
auth.php
meta.php
/public
/js
core.js
/modules
module files here
/jquery
jqueryplugins here
/controllers
home.js
auth.js
meta.js
控制器具有对应于我们的 url 路由和视图呈现的方法。例如http://localhost/meta/contact
将调用“元”控制器上的“联系人”操作并呈现元/联系人模板。
我正在围绕对应用程序全局对象的单个初始化调用来规划 js 架构,将控制器和方法作为参数传递给它,即
localwebapp.init(controller, method);
在设计的这一点上,我在继承和模块实现上苦苦挣扎。一些模块将是全局的并在整个站点中使用,一些模块将通过特定的控制器使用,而一些模块将仅用于控制器操作。 模块是独立的,不会相互通信,它们需要被分配到一个“沙箱”,它们将检查事件触发器
我想我需要沙盒和模块类。控制器脚本基本上是几行模块被分配给沙箱并被初始化。
如果我在这里重新发明***,请告诉我。任何方向都非常感谢。我已经研究过 javascript MVC 框架的工作方式类似于 JavaScriptMVC,但它看起来不是我需要的
【问题讨论】:
你为什么不认为客户端MVC框架不起作用?我听上去很喜欢,而且我在使用它时只获得了很好的体验(包括在客户端的 JavaScript 源代码和在服务器端生成的数据的清晰分离)。 我从 JavaScriptMVC 文档中得到的印象是,该框架是为重型 UI 驱动的网站而设计的,并且可以处理您在 javascript 中使用传统 php MVC 设置所做的所有事情。因为我们已经有了 php 框架,并且从上次迭代中移植了很多功能,所以我不想将所有这些都移到 javascript 中。 【参考方案1】:我们也使用 JavaScript MVC。您可以在应用程序中同时使用两者。
在我们的例子中,我们的应用程序更多地是前端驱动的,而后端(ZF 和 MVC)是一个 REST API,而 JavaScript MVC 可以很容易地做到这一点。功能集仍然在 PHP 部分,而不是客户端,我们只是利用 JavaScript MVC 的很多部分使其看起来更快捷,等等。
最后,我看不出为什么不能反过来。
我认为对 MVC 中的视图部分的误解是它可以在浏览器中看到。视图也可以是 XML 或 JSON。我相信你知道这一点,但我想强调这部分,因为它让大多数人感到厌烦。
如果您通常询问 JavaScript MVC——我不知道它是否是最好的 MVC 框架(客户端方面),但它会强制您定义模型、控制器,并且它带有一个测试框架来确保事情按计划进行。
如果这有帮助,请告诉我!
【讨论】:
以上是关于如何构建 Javascript 架构以补充 PHP MVC Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Memcache 构建 PHP/Javascript 聊天室 [重复]