如何模块化Code​​Igniter?

时间:2011-05-20 02:40:39

标签: php model-view-controller codeigniter module

好吧,我一直在思考我编写的第一个真正的CodeIgniter网站。我希望以这样的方式模块化网站,即我有一个格式化导航栏的控制器,一个格式化多用途右列的控制器,以及一个格式化内容区域的控制器。

我的想法是为网站的任何部分的每个状态设置一个控制器(一个例子是正确的列,它将有3个状态;新帖子,相关帖子和搜索过滤器)。我也有内容区域有很多不同的状态(搜索结果,视图帖子,新帖子等)。

问题是我找不到一种方法来获取多个控制器输出并将其编译成单个模板(注意,我说控制器,而不是视图)。

我已经看过HMVC扩展,但这对我的第一个网站来说是远远的,我希望有一个更简单的解决方案(除非你能证明我错了,并证明HMVC比我见过的更容易)

2 个答案:

答案 0 :(得分:1)

在MVC模型中,这对我来说似乎有点不可思议。

如果您正在使用右侧面板的单个有状态视图,可能会根据输入更改状态(即用户当前所在的页面),那么我将为该面板添加模型。控制器的操作将负责设置正确的模型状态(即“您处于主页状态”)。该模型可以负责告诉右侧面板查看要加载的子视图。

这就是我可能会实现类似的东西。 HMVC似乎有点过分,在这个例子中,不会按预期使用。

答案 1 :(得分:1)

对于你想要完成的事情,评论中建议的火柴盒模块似乎有点矫枉过正。我不认为使用控制器来格式化这些区域是非常好的方法。

通常,想要使用CodeIgniter时所描述的功能类型的人最终会使用模板库。 CodeIgniter有几个开源模板库,可以通过谷歌搜索“codeigniter模板库”轻松找到。

我从来没有使用过它们,所以我不会推荐任何特定的库。但是,我正在处理的应用程序借用了Phil Sturgeon's template library中的一些想法。您可能找不到与您需要的功能完全匹配,但至少您将能够从其他人提出的解决方案中获得灵感。