Php 科哈纳3.0';外行的HMVC结构';什么条件?

Php 科哈纳3.0';外行的HMVC结构';什么条件?,php,model-view-controller,kohana,hmvc,Php,Model View Controller,Kohana,Hmvc,所以,我想我从基本的角度理解了级联文件系统,但我似乎无法理解MVC的H’ierachy结构。有谁能告诉我使用HMVC优于MVC的优点以及它的基本预期功能吗 谢谢你的时间 您可以请求内部页面(控制器和操作由路由找到)。您可以这样做,例如: class Controller_Menu extends Controller { public function action_index() { $this->request->response = view s

所以,我想我从基本的角度理解了级联文件系统,但我似乎无法理解MVC的H’ierachy结构。有谁能告诉我使用HMVC优于MVC的优点以及它的基本预期功能吗


谢谢你的时间

您可以请求内部页面(控制器和操作由路由找到)。您可以这样做,例如:

class Controller_Menu extends Controller
{
    public function action_index()
    {
        $this->request->response = view stuff ...
        $this->request->response->set('...', ...) // some vars
    }
}


每个有菜单的页面都不必执行所有逻辑来加载菜单等(例如,从模型)。您只需向控制器发出请求,执行它,然后得到结果。正确使用时非常有用。

HMVC更适合小部件。例如,日历小部件可能有自己的控制器、模型和一组视图,您可以简单地调用其控制器,从主页面内部呈现特定视图以嵌入小部件

重点是可重用的GUI元素。请参阅此处了解更多信息:


编辑:这里有一个实际的以PHP为中心的链接:。KO3论坛上的人描述了HMVC的功能,就像在没有额外HTTP请求的情况下发出AJAX请求一样

如果您想要构建一个将API作为应用程序不可分割的一部分的系统,那么这可能是一个真实的案例。比如推特。使用HMVC,您可以先编写API,然后在应用程序中使用它。这样可以节省代码重复或额外的HTTP请求


但目前,以这种方式工作是非常有限的,主要是因为可以发送的请求类型

那么,您是否会主张在更大规模的网站上使用简单的MVC框架?人们说HMVC更具可扩展性,但这取决于您的网站是什么样的。仅仅因为一个站点规模很大并不意味着它有小部件,反之亦然。我想我现在已经知道了:)这实际上非常方便。谢谢
class Controller_Home extends Controller
{
    public function action_index()
    {
        $this->request->response = ...; // some view stuff...
        $this->request->response->set('menu', 
            Request::factory('menu')->execute()->response // here happens the magic
        );
    }
}