※ 本文為 ott 轉寄自 ptt.cc 更新時間: 2014-06-29 15:20:28
看板 PHP
作者 poopoo888888 (阿川)
標題 [討論] 分析Codeigniter原始碼
時間 Mon Jun 16 23:03:01 2014


大家好

利用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
howtomakeaturn/Analyze-Codeigniter ·  GitHub
[圖]
Analyze-Codeigniter - 分析CI原始碼,說明它的運作、指出它的缺點。 ...

 

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.188.46
※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1402930985.A.C36.html
ibbadmin:努力給推,感謝分享!1F 06/16 23:24
reso:推2F 06/17 01:10
j87b0003:努力推3F 06/17 08:04
gpmm:推~4F 06/17 15:07
teli:獲益良多!5F 06/17 16:17
jazzjas:用了一段時間後就想棄坑了,很不習慣 Class的命名 囧6F 06/17 21:57

嗯嗯...

歡迎大家一起來review XDDDD

直接fork它!!!
※ 編輯: poopoo888888 (220.133.188.46), 06/17/2014 22:41:35

--
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 326 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇