hmvc,模块化分离,模块化扩展,概念澄清

时间:2012-10-05 12:12:51

标签: codeigniter module hmvc

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

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

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

这是什么意思?如果有人能够解释它的意义和目的,那将会非常有用。

此外,对HMVC,模块化扩展和分离等的更多概念性解释将是很好的。就像如何决定何时扩展模块一样,将它们分开,以及这意味着什么。

1 个答案:

答案 0 :(得分: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是Modular Extensions包的基本控制器。您还可以选择扩展自身扩展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应用程序都可以成为一个模块,反之亦然。