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

[其它 Other] 如何让CI更完整,更好用

[复制链接]
发表于 2008-2-11 13:31:01 | 显示全部楼层 |阅读模式
最近我也在看几个PHP框架
比较起来CI的优点不少,但还是缺乏一些网站开发方面必须的模块,还得整合其他开源的项目进来。
比如
ACL,用RBAC实现用户访问控制的模块
AJAX,现在是整合JQuery,prototype,Ext-JS等等
ORM,现在的ActiveRecord的功能比起RoR还是差一些
...
虽然说这样设计会让CI有更多的灵活性,但对PHP新手来说去比较分析完PHP框架后还要比较其他的需求的开源框架,真是勉为其难了。
我想CI中国中我们可以做的一个事情,把这些CI框架内还不包括的,而国内网站项目开发中常用的模块进行评估和整合,这些模块可以从其他开源项目中汲取,比如从Zend Framework里的类库,做一个CI的一个扩展整合包。
方便新手学习和开发。
附件是我收集的一些CI扩展的模块

erkanaauth.zip

1.73 KB, 下载次数: 64

OnlineUsers0.2.zip

1.21 KB, 下载次数: 89

tagcloud.zip

11.18 KB, 下载次数: 56

FreakAuth_light_1.1.zip

261.07 KB, 下载次数: 92

Activerecord.0.3.2.php.zip

3.71 KB, 下载次数: 51

multicache.zip

832 Bytes, 下载次数: 45

supercache.demo.zip

389.33 KB, 下载次数: 70

ActiveRecord_Mod_v0.5.2.zip

4.95 KB, 下载次数: 53

Matchbox-0.9.3-Beta-r200.zip

30.55 KB, 下载次数: 45

SimpleTester-1.0.zip

6.46 KB, 下载次数: 46

ezauth0.6demo.zip

394.16 KB, 下载次数: 76

ezslide0.1demo.zip

455.91 KB, 下载次数: 71

codeigniter_rapyd_0.9.8.zip

1.51 MB, 下载次数: 113

评分

参与人数 1威望 +5 收起 理由
Hex + 5 精品文章

查看全部评分

发表于 2008-2-12 08:13:31 | 显示全部楼层
支持
最好说明一下,各个下载文件的功能。
发表于 2008-2-12 10:04:12 | 显示全部楼层
原帖由 moonster 于 2008-2-12 08:13 发表
支持
最好说明一下,各个下载文件的功能。

http://codeigniter.com/wiki/
这些扩展你都可以在官方的Wiki上面查找得到的
发表于 2008-2-12 10:53:35 | 显示全部楼层
楼主的建议非常棒,我确实也是觉得如果用CI开发网站,需要很多的扩展模块。
我其实整合过一个 CI + FreakAuth 的东东,等我上班后就共享。
 楼主| 发表于 2008-2-12 16:19:25 | 显示全部楼层
我的建议是CI中国的同仁,一起分析扩展需求,建一套CI扩展的插件集合。
另外根据国内的互联网的需求,可以考虑基于CI做一个开源应用项目,我觉得CMS这个主题不太好。不如直接做一个有特色的网店系统,类似ECShop这样的,或者类似Facebook这样的社区系统,CMS架构已经太多了。

[ 本帖最后由 jianzi 于 2008-2-12 16:21 编辑 ]
发表于 2008-2-12 17:23:13 | 显示全部楼层
这个主题很有意思,我前阵子一直在琢磨相同的问题——

CI的功能性不完整,这到底是优势还是劣势?

一方面,我觉得我现在要开发一个中大型的项目,需要一个功能完整,架构成熟的框架,CI过于“轻量”。另一方面,CI的轻量级特征使我能够瞬间上手,并且许多功能化的模块都可以依照自己的意愿来开发。

用CI的好处很明显,那就是上手快,扩展性高,自由度高。坏处也很明显,由于自由度高,新手很可能会将程序开发的乱七八糟,另外,由于功能集成的少,许多东西要靠社区开发的第三方插件来实现。

从某种意义上而言,我更倾向于RoR的模式。比方说,RoR集成了Prototype来提供AJAX的功能,但是你并不一定要用它。你仍然可以用jQuery或其他的JS框架。

好在,CI和Zend Framework可以共存(具体的可以google一下)。:)
发表于 2008-2-12 20:35:24 | 显示全部楼层
沧蓝一语道破 CI 最主要的特点。也就是“过于轻量”。呵呵。
好处和坏处都是由于过于轻量造成的,所以我们要好好在“过于轻量”上做文章。
发表于 2008-2-13 02:02:20 | 显示全部楼层
我认识一些CI的开发人员,其中一个在中国做项目的时候还和他共事过,关于CI的“过于轻量”,也曾经问过他。得到他的回答后恍然大悟。CI的开发团队其实就是博客系统ExpressionEngine的开发团队,这个团队在开发了EE这样一个巨无霸后(EE的系统复杂的令人咋舌,光是数据库中就有70多个表,几乎把网站开发的所有功能都集中在了管理界面中,开发人员甚至不需要直接建数据库表,而是通过其中的weblog和custom fileds即可完成整个数据结构的创建,并且附带了一个十分完整的smarty模板系统,完整版本的EE身材十分庞大壮硕,不仅可以做为博客系统和CMS使用,还可以挂载配套的图片库、wiki和论坛,在CI的官方网站版权说明中我们可以看到整个CI的官方站点都是EE建的),又将EE的核心抽象层单独剥离出来加以改进,就是现在我们看到的CI。

有趣的是虽然这个团队开发了EE这样一个巨无霸式的系统,但其团队开发人员却是崇尚自由和Tiny的开发理念。也正因为开发团队这样的理念,CI被设计成一个超轻量级的框架,虽然系统的复杂度仍然不低,但功能却一直围绕着网站最核心和比较难于处理的几个部分在打转,由于ORM的效率一直很成问题,适用性也不见得有多广,开发团队甚至干脆取消了在CI中包含ORM的想法,代之以Database类,而数据库也正是CI中最庞大的一个类,我们在文档中就能看出来。

事实上,CI在设计的时候就是想做成一个适用性广的框架,因此也没有在其中包含Ajax,就是因为Ajax框架太多,干脆一个不包含,由得项目团队自己选择,上面说的那个朋友就是一直在用Jquery,而他的同事则有人喜欢用YUI,有人喜欢用prototype,为了适应各种不同类型的网站开发需要,CI提供了一个插件机制,虽然这个插件被很多开发人员斥为鸡肋,但其真正的能量似乎尚未被挖掘出来,按照开发团队的想法,CI是作为一个平台存在的,只封装那些在各种开发中都普遍会用到和开发十分麻烦的功能,至于其他功能,则由用户自行扩展积累。自己对自己开发的东西最为了解,在积累了一段时间后,用户大可以根据项目的需要自行选择插件,在最大程度上保持系统的小和精悍。也就是说,重在积累。

其实,我觉得愿意分享的朋友也不妨把自己写的CI插件库写好注释和文档,附带一个许可证放出来共享和共同完善,我觉得这样的各种插件集合远比基于CI来写一个针对某类型网站的系统更有意义。毕竟网站开发的需求各不相同并且是在不断变化的,即使同是网店,同是论坛,其中的功能细节也可能差别极大。

评分

参与人数 1威望 +3 收起 理由
Hex + 3 精品文章

查看全部评分

 楼主| 发表于 2008-2-13 20:01:12 | 显示全部楼层
不错,见解精辟!支持
发表于 2008-2-14 11:53:21 | 显示全部楼层
搞个CN的CI Wiki就好了嘛

本版积分规则