我正在使用模块化网站构建器的概念 - 现在主要是在理论,它将包含基于模块的页面/集合(预编程或在需要时专门完成)。
每个带有它的模块都与数据库,视图/模板和核心数据处理有关,我正在考虑factory
模式:
基本模块包装器 - 具有规范化名称 - > callDB,processData,returnToTemplate
每个模块然后继承这个包装器,只是添加它对DB的调用,它的数据处理,最后将返回数据,然后在应用程序中,我将做类似的事情:
$this->modules->each->callDB(); //obviously, pseudo-PHP
然而,我正在努力将整个想法融入CodeIgniter的MVC方法及其数据结构中,因此它不会/感觉(我知道,主观)不自然和/或无意义。
有什么想法吗?
(在树形结构下我 - 我知道,我可以做任何我喜欢的事情。但是,我不知道我是否喜欢dir modules
每个模块的subir,或者application/templates
中的模板和application/modules
中的模块 - 以及那些模块,它实际上对我没有意义,因为我的模块与CI模块有些不同......你知道......)
所以...这是如此顽固或如此愚蠢以至于没有答案?
答案 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文件存储在应用程序/模型,应用程序/视图和应用程序/控制器的子文件夹中来以模块化方式区分问题