首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hmvc,模块化分离,模块化扩展,概念澄清

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

Stack Overflow用户
提问于 2012-10-05 20:12:51
回答 1查看 497关注 0票数 0

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

首先,具体地说,我想要一个在原始模块化扩展hmvc站点的线路的解释

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

这到底是什么意思呢?如果有人能解释它的意义和目的,那将是非常有帮助的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-05 21:37:26

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

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

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

这意味着如果你想让你的控制器能够利用Modules::run(),它可以从你的应用程序中的任何地方(包括其他模块)调用,你需要让控制器像这样扩展MX_Controller类:

代码语言:javascript
复制
class Foobar extends MX_Controller {}

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

代码语言:javascript
复制
// Base controller
class Module_Controller extends MX_Controller {}

// Actual controller
class Blog extends Module_Controller {}

Modules::run()用于返回视图的部分参数。

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

代码语言:javascript
复制
class Foobar extends CI_Controller {}
class Foobar extends MY_Controller {} // etc.

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12746027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档