我一直在阅读有关codeigniter的模块很长一段时间,并决定深入研究它。我已经掌握了基本概念,每个模块都是一个单独的“MVC”,因此易于维护,添加等,但需要一些帮助才能理解正确的实现。
首先,具体来说,我想对原始模块化扩展hmvc网站中的线路进行解释
“仅使用模块化分离,不使用HMVC,控制器将扩展CodeIgniter控制器类。”
这是什么意思?如果有人能够解释它的意义和目的,那将会非常有用。此外,对HMVC,模块化扩展和分离等的更多概念性解释将是很好的。就像如何决定何时扩展模块一样,将它们分开,以及这意味着什么。
答案 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应用程序都可以成为一个模块,反之亦然。