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 应用程序都可以成为一个模块,反之亦然。