外行人的条款是Kohana 3.0的HMVC结构?

sor*_*ist 5 php model-view-controller kohana hmvc

所以,我认为我理解它的基本术语中的级联文件系统,但我似乎无法围绕MVC的'H'ierachy结构.有人能告诉我使用HMVC而不是MVC的优势吗?它是基本的预期功能吗?

谢谢你的时间!

VDV*_*eon 5

您可以在内部请求页面(路由器找到控制器和操作).你可以这样做:

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

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
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Lot*_*tes 5

HMVC更适合Widgets.例如,Calendar小部件可能有自己的控制器,模型和视图集,您只需调用其控制器即可从主页面内呈现某个视图以嵌入小部件.

重点是可重用的GUI元素.请参阅此处以获取更多信息:http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html.

编辑:这是一个以PHP为中心的实际链接:http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/.似乎也有更好的插图.