我可以使用HMVC架构?

yre*_*uta 12 php kohana hmvc kohana-3

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

ric*_*ick 14

它有点像ajax,纯粹是服务器端.

这是一个很好的比喻.

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

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

然而,Kohana HMVC有一些优点:

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

我开始意识到HMVC的情况以及Kiall链接的http请求的可扩展性.使用CURL可以完成同样的事情.然而,从一开始就用Kohana HMVC设计比CURL更自然.


小智 8

好吧 - Samhana Freyssinet(又名samsoir),Kohana开发者之一,最近发表了一篇关于这个问题的文章.

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

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

希望这可以帮助 :)

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