3

我搜索了 HMVC,知道它是什么以及它的优点。

模块化:减少应用程序不同部分之间的依赖关系。

组织:为每个相关的三合会设置一个文件夹可以减轻工作量。

可重用性:根据设计的性质,几乎可以轻松重用每一段代码。

可扩展性:在不牺牲易于维护的情况下使应用程序更具可扩展性。

但是只是在没有 HMVC 的 Codeigniter 中,可以为控制器和多个模型文件夹和多个视图文件夹创建不同的子文件夹。我不理解使用 HMVC 的确切原因。

4

2 回答 2

3

我在https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc中找到了。

当您需要在视图中加载视图及其数据时,这非常有用。考虑将购物车添加到页面。购物车需要自己的控制器,该控制器可以调用模型来获取购物车数据。然后控制器需要将数据加载到视图中。所以不用主控制器处理页面和购物车,购物车 MVC 可以直接加载到页面中。

主控制器不需要知道它,并且与它完全隔离。在 CI 中,每个请求不能调用超过 1 个控制器。因此,要实现HMVC,我们必须模拟控制器。它可以通过库来完成,或者通过这个“Modular Extensions HMVC”贡献来完成。

使用库和“模块化 HMVC”HMVC 类之间的区别是:

  1. 无需在 HMVC 类中获取和使用 CI 实例
  2. HMVC 类存储在模块目录中,而不是库目录中。
于 2014-06-15T20:47:26.070 回答
1

我认为原生 CI 不是 HMVC,它只是 MVC。里面只有“控制器”、“模型”和“视图”,没有“模块”。

因此,如果您不需要 HMVC 的好处,请不要担心为什么 CI 是 HMVC。

顺便说一句,如果你真的需要 HMVC 模式和模块化的好处,你可以使用扩展:

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

https://github.com/jenssegers/codeigniter-hmvc-modules

于 2014-06-15T03:26:11.723 回答