11

我正在使用的 PHP 框架(Kohana)最近实现了 HMVC 架构。我读过它是一个分层的mvc,请求是在彼此之上发出的。它有点像 ajax,只是纯粹的服务器端。我在一些实验中应用了它,但我无法将它应用到我的任何项目中(因为我找不到它的需要)。你以前在项目中使用过 HMVC 吗?它对你有什么帮助?

4

3 回答 3

14

它有点像 ajax,只是纯粹的服务器端。

这是一个很好的类比。

HMVC 非常适合将小部件添加到页面 - 您将在几个页面上重复使用的模块化内容。例如,购物车小部件。你可以用不同的方式做同样的事情:

  1. 图书馆。我们习惯于将可重用代码从控制器移动到库中。然后,您可以从控制器将对该库的调用结果加载到视图变量中。
  2. 一个看法。您可以从主视图中加载视图(部分)。该视图部分可以从模型中提取内容。从视图调用模型并不总是很流行,但也不一定是错误的。

然而,Kohana HMVC 有几个优点:

  1. 一致性 - HMVC 请求被视为与外部 http 请求相同。
  2. Power - HMVC 请求与包括路由在内的 http 请求具有相同的 Kohana 资源。
  3. 可插入性 - 当从视图调用时,HMVC 请求在控制器(将库结果分配给视图)和视图占位符之间没有耦合。您只触摸一个文件而不是两个文件。

我开始欣赏 HMVC 的案例和 Kiall 链接的 http 请求的可扩展性。CURL 也可以做同样的事情。但是,从一开始就使用 Kohana HMVC 进行设计可能比使用 CURL 更自然。

于 2010-02-23T08:28:06.927 回答
8

好吧 - Kohana 开发人员之一 Sam de Freyssinet(又名 samsoir)最近发表了一篇处理这个问题的文章。

http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

虽然它不是 HMVC 的唯一用途——但它是它更受欢迎的用途之一。本文主要关注可伸缩性(例如每秒请求数),但代码可伸缩性(例如,代码维护的难易程度)可以用相同的想法“解决”。

希望这可以帮助 :)

(旁注 - 他的代码示例基于 Sam 对 Kohana 的个人更改 - 请参阅文章末尾的注释)

于 2010-02-22T23:36:04.823 回答
2

在一个简单的项目中,您甚至可能找不到 HMVC 架构模式的真正用途。你甚至不应该尝试。这就是为什么:

创建 HMVC 架构的全部目的是让 MVC 有点干。HMVC 的主要好处之一是代码重用。它可以让你的片段在你的应用程序中重复(有时在同一个地方,其他时候 - 不是)。

如果您正在编写小型测试应用程序,则不会有任何可重复的片段。因此,无需使用全部 HMVC 潜力。您最终会得到 1 级 HMVC,即标准 MVC。

在这里您可以阅读介绍 HMVC 的原始出版物。在 2000 年。

于 2011-05-01T22:45:11.683 回答