2011-06-11 74 views

回答

5

主要有两种不同的功能,HMVC增加笨经常混淆的人:

  1. 模块化MVC
  2. 的层级MVC

模块化MVC是大多数人想要使用的功能并且基本上只是一种清洁的文件夹结构。

HMVC是从其他控制器调用控制器而不需要新的HTTP请求的做法。在我看来,这很少有用,除了调用自定义404页面或“小部件”之外。

MMVC几乎没有增加性能,通过HMVC调用控制器显然几乎是速度的两倍。

无论哪种方式都不会引人注目。如果您的网站在高流量下开始爬网,那么这是您需要担心的最后一件事情之一。

+0

“小工具”的确如此 - 我倾向于认为它很少有用。在完成将一个控制器写入Controller并与'modules :: run()'一起使用时,您会意识到“这可能只是一个库” - 不需要调用Controller类,路由,全局卫生例程等。无缘无故再一次。 – 2011-06-14 06:30:14

+0

感谢您的澄清 - 也许是后续?我认为HMVC的主要原因是代码的可重用性。如果我想使用CI“模板化”一个页面,是不是需要HMVC?例如,如果我想要在每个页面上显示“登录”表单,这是否需要HMVC?谢谢。我认为这些都是需要HMVC的“观点偏见”,但我们仍然愿意另辟蹊径。 – csi 2011-06-16 19:37:51

2

使用HMVC,您不必再像在codeigniter中实现那样对模块进行编码。如果客户需要您之前项目中已完成的功能,则只需将其复制并放入当前项目中即可。

正如在codeigniter中实现的那样,您可以在您使用的过程中执行编码,并仅实现您认为需要HMVC的功能。

至于性能,它取决于你如何设计你的应用程序。