Codeigniter原始碼分析

尤川豪 发布于 2014/06/18 12:37
阅读 789
收藏 2

利用Codeigniter工作半年了
最近想深入了解CI框架的底層運作
所以跟朋友一起,打算把整份source code讀過一遍
並且加上我們的一些解釋與批評

http://howtomakeaturn.github.io/ci/menu

寫了幾份review之後,慢慢理解了一些對CI的批評是從何而來。
我目前看到最討厭的部份是core/common.php定義了大量的全域函數。
最可怕的是定義了load_class函數來負責載入絕大部分的類別。
這直接導致:
1、無法在建構式傳入參數
2、呼叫載入的類別要寫$URI =& load_class('URI', 'core'),真的很醜
3、所有相關類別因此都嚴重相依,無法把元件獨立出去在CI之外使用

另外,我還發現部份類別並沒有專注在「一個任務上」。例如Output類別裡面有計算benchmark相關的code,違反了single responsibility principle,增加了維護與理解的難度。
也因此,整體說來,source code並不好讀。

目前只review了一小部份,還會繼續下去。
想收集更多意見並且與大家討論,希望有興趣研究codeigniter原始碼的朋友,一起加入我們:)

https://github.com/howtomakeaturn/Analyze-Codeigniter

BLOG:

http://blog.turn.tw/?p=519


加载中
0
开源春哥
开源春哥
ci主要是有历史的保护。在php4时代的时候写的,那时候面向对象的语法还不够完善。整体来讲ci的概念实现的还是很简单,很干净的。
0
且行且珍惜吧
且行且珍惜吧

精彩,我是CI的死忠,听到你把CI的不足娓娓道来,不但没有不爽反而十分敬佩!

同时也希望你们后面可以做一些Pull request放到Github的官方源去,让CI更加优秀!

加油!

0
尤川豪
尤川豪

小弟我會努力再努力!

也希望各位可以一起加入我們!

0
亦可塞艇
亦可塞艇
大侠,你为什么要放到非死不可上面去咯.  明明知道大陆的平民要去那里很费劲啊
0
无名小卒
codeigniter快要被淘汰了,已转phalcon框架
m
money412
从没用过,用过YII、ThinkPHP,只是知道CI停止过更新,不过最近又开始维护更新了
木川瓦兹
木川瓦兹
为何淘汰,我用着很爽的!
0
苏生不惑
苏生不惑
好赞,正学这个框架
0
尤川豪
尤川豪

Codeigniter很好用!

但是沒有提供豐富功能!

最近Laravel很流行,也許可以試試!

0
尤川豪
尤川豪
像是ORM、多型態SESSION、router binding等等!
返回顶部
顶部