作者poopoo888888 (阿川)
看板PHP
标题[讨论] 分析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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.188.46
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1402930985.A.C36.html
1F:推 ibbadmin:努力给推,感谢分享! 06/16 23:24
2F:推 reso:推 06/17 01:10
3F:推 j87b0003:努力推 06/17 08:04
4F:推 gpmm:推~ 06/17 15:07
5F:推 teli:获益良多! 06/17 16:17
6F:推 jazzjas:用了一段时间後就想弃坑了,很不习惯 Class的命名 囧 06/17 21:57
嗯嗯...
欢迎大家一起来review XDDDD
直接fork它!!!
※ 编辑: poopoo888888 (220.133.188.46), 06/17/2014 22:41:35