用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4293|回复: 4
收起左侧

[Web] 请问与CMS系统结合使用的问题

[复制链接]
发表于 2008-9-4 00:44:35 | 显示全部楼层 |阅读模式
各位好,刚接触CI,初步读了一下文档,感觉很好,架构简洁清晰,感谢版主们和各位前辈付出的辛苦和努力。

我们现在的网站是基于一个CMS系统PHPNUKE的,相信各位也都听说过。我们使用了一些原有的模块,同时自己开发了一些新模块,在下一步的开发过程中,我们希望能尝试使用优秀的framework,CI自然是我们的首选。

现在的问题是,PHPNUKE有自己的架构(截了个图传上来,CodeIgniter目录是刚上传的),所有的模块放在modules目录下,由xxx.com/modules.php?name=xxx这样的url来访问。模块里大部分是原始的PHP代码,同时也会调用PHPNUKE提供的一些函数以适应其架构的要求,基本上不分逻辑和表现(这也是让我们寻求一个框架的原因之一)。

我们希望在进一步开发更多模块的时候引入CI,但是不能影响已经完成的功能和模块。我的初步想法是把CI作为一个辅助类库使用,把模块的主要功能按照MVC的标准分别写在CI的相应文件夹下,在modules下的文件只是做一些基础工作后调用相应的controller,然后把view作为模块输出的一部分。这样应该是一个比较简单的结合方式,但是其缺点是放弃了CI的url路由等功能。不知道各位前辈有什么好的建议可以指导小弟一下。

CI是一个优秀的框架,用它的确能够快速的开发。但是如果能使已有的PHP网站轻松的移植到CI上,应该会有更广泛的应用。

[ 本帖最后由 yesiwill 于 2008-9-4 00:45 编辑 ]
2.GIF
 楼主| 发表于 2008-9-4 22:29:19 | 显示全部楼层
没有人回答
自己顶
发表于 2008-9-4 23:26:59 | 显示全部楼层
呵呵,我给楼主转移一下板块。
对于楼主所说的问题,我觉得比较好的结合方式就是专门给 CI 分配一个子文件夹,然后在其下放置 CI 编写的网站,这样可以做到不影响以前的应用,还可以使用以前的数据库等内容,并且我也这么做过。
可能这样结合的不是很紧密吧。
 楼主| 发表于 2008-9-5 00:02:27 | 显示全部楼层
谢谢Hex

你说的是很好的解决方案。你看有没有可能这样,在modules文件夹下的代码只是CI的一个壳,它调用controller,截获view的输出作为模块输出的一部分(不知道CI的钩子是否能做到这点,或是其他方法),这样即符合PHPNUKE的架构,又可以使用CI。只是不知道在这种情况下是否还应该经过CI的index.php,如果不经过的话如何把CI初始化的工作完成呢。
发表于 2008-9-5 00:29:40 | 显示全部楼层
嗯,你说的方案就是把 CI 拆开了,我想这样会比较复杂吧,也许这样用 CI 的优势就所剩无几了。
对于把 CI 融合到其他框架中,我也没有什么好的解决方案。
把别人融合到 CI 中倒是有些方案,呵呵~~

本版积分规则