所以,我想我理解级联文件系统的基本术语,但我似乎无法理解 MVC 的“层次结构”。谁能告诉我使用 HMVC 优于 MVC 的优势以及它的基本预期功能?
谢谢你的时间!
所以,我想我理解级联文件系统的基本术语,但我似乎无法理解 MVC 的“层次结构”。谁能告诉我使用 HMVC 优于 MVC 的优势以及它的基本预期功能?
谢谢你的时间!
您可以在内部请求页面(控制器和操作由路由找到)。例如,您可以这样做:
class Controller_Menu extends Controller
{
public function action_index()
{
$this->request->response = view stuff ...
$this->request->response->set('...', ...) // some vars
}
}
和
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
);
}
}
每个有菜单的页面都不必执行所有逻辑来加载菜单等(例如从模型中)。您只需向控制器发出请求,执行它并获得结果。正确使用时非常有用。
HMVC 更适合 Widgets。例如,一个日历小部件可能有它自己的控制器、模型和一组视图,您可以简单地调用它的控制器来从主页内渲染某个视图以嵌入小部件。
重点是可重用的 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/ 。似乎还有更好的插图。
KO3 论坛上的人们已经描述了 HMVC 的能力,比如在没有额外的 HTTP 请求的情况下发出 AJAX 请求。
如果您想构建一个将 API 作为应用程序不可或缺的一部分的系统,则可能是一个真实的案例。以推特为例。使用 HMVC,您可以先编写 API,然后在应用程序中使用它。这可以节省代码重复或额外的 HTTP 请求。
但目前,以这种方式工作非常有限,主要是因为可以发送的请求类型。这是我不久前关于此问题的论坛帖子。它可能会阐明 HMVC 如何有用。