CodeIgniter中的模块化体系结构

时间:2010-02-25 20:53:34

标签: php oop codeigniter

这个想法

我正在使用模块化网站构建器的概念 - 现在主要是在理论,它将包含基于模块的页面/集合(预编程或在需要时专门完成)。

每个带有它的模块都与数据库,视图/模板和核心数据处理有关,我正在考虑factory模式:

基本模块包装器 - 具有规范化名称 - > callDB,processData,returnToTemplate

每个模块然后继承这个包装器,只是添加它对DB的调用,它的数据处理,最后将返回数据,然后在应用程序中,我将做类似的事情:

$this->modules->each->callDB(); //obviously, pseudo-PHP

问题

然而,我正在努力将整个想法融入CodeIgniter的MVC方法及其数据结构中,因此它不会/感觉(我知道,主观)不自然和/或无意义。

有什么想法吗?

(在树形结构下我 - 我知道,我可以做任何我喜欢的事情。但是,我不知道我是否喜欢dir modules每个模块的subir,或者application/templates中的模板和application/modules中的模块 - 以及那些模块,它实际上对我没有意义,因为我的模块与CI模块有些不同......你知道......)

EDIT1

所以...这是如此顽固或如此愚蠢以至于没有答案?

2 个答案:

答案 0 :(得分:4)

你到底想要达到什么目的?有很多代码可以帮助您在CodeIgniter应用程序中实现模块化架构(HMVC)。

Modular Separation - wiredesignz

Matchbox - Zacharias Knudsen

您需要添加的与包装模块有关的任何其他内容纯粹是在实现中。我会考虑使用MY_Controller并可能更进一步到implement multiple base classes,所以你的前端控制器知道用数据库中的任何数据包装模块。

答案 1 :(得分:0)

对codeigniter有一个HMVC扩展,请检查http://codeigniter.com/wiki/Modular_Extensions_-_HMVC/

另外,您可以通过重载CI的加载器类(以及根据需要进行路由)以及将MVC文件存储在应用程序/模型,应用程序/视图和应用程序/控制器的子文件夹中来以模块化方式区分问题