[討論] 分析Codeigniter原始碼

作者: poopoo888888 (阿川)   2014-06-16 23:03:01
大家好
利用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
作者: ibbadmin (愛BB)   2014-06-16 23:24:00
努力給推,感謝分享!
作者: reso   2014-06-17 01:10:00
作者: j87b0003 (I'm 邱老虎)   2014-06-17 08:04:00
努力推
作者: gpmm (銀色)   2014-06-17 15:07:00
推~
作者: teli (You Are)   2014-06-17 16:17:00
獲益良多!
作者: jazzjas (吾輩は猫である)   2014-06-17 21:57:00
用了一段時間後就想棄坑了,很不習慣 Class的命名 囧

Links booklink

Contact Us: admin [ a t ] ucptt.com