[讨论] 分析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