0

我已经阅读有关 codeigniter 的模块很长一段时间了,并决定深入研究它。我已经了解了基本概念,每个模块都是一个单独的“MVC”,因此易于维护、添加等,但需要一点帮助来理解正确的实现。

首先,具体来说,我想对原始模块化扩展 hmvc 站点中的行进行解释

“仅使用模块化分离,没有 HMVC,控制器将扩展 CodeIgniter 控制器类。”

这是什么意思?如果有人可以解释它的含义和目的,那将非常有帮助。

此外,对 HMVC、模块化扩展和分离等进行更多概念性的解释会很棒。比如如何决定何时扩展模块,将它们分开,以及这意味着什么。

4

1 回答 1

2

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

要使用 HMVC 功能,例如Modules::run(),控制器必须扩展 MX_Controller 类。

要仅使用模块化分离,不使用 HMVC,控制器将扩展 CodeIgniter 控制器类。

这意味着如果您希望您的控制器能够利用Modules::run()可以从应用程序中的任何位置(包括其他模块)调用的 ,您需要让该控制器扩展 MX_Controller 类,如下所示:

class Foobar extends MX_Controller {}

MX_Controller是模块化扩展包的基本控制器。您还可以选择扩展本身 extends 的任何其他控制器MX_Controller,如下所示:

// Base controller
class Module_Controller extends MX_Controller {}

// Actual controller
class Blog extends Module_Controller {}

Modules::run()专为返回视图部分而设计

如果你不需要这个功能(你可能不需要),那么你不需要在你的模块控制器中做任何不同的事情:

class Foobar extends CI_Controller {}
class Foobar extends MY_Controller {} // etc.

在这种情况下,“模块”只是迷你 CI 应用程序,每个应用程序都有自己的模型、视图、控制器等。它有助于保持代码的组织性,并为您提供更多分离不相关组件的能力。理论上,任何 CI 应用程序都可以成为一个模块,反之亦然。

于 2012-10-05T13:37:25.973 回答