【转载】06-19怎么学习或者阅读PHP源码?

【今日话题】

怎么学习或者阅读PHP源码? - kdrol.li

1. 学习别人的源代码phpstorm等好用的IDE是必备利器,方便追踪查看 - 杨恒飞

2. 这个源码指的是PHP的C源码吧,首先C基础是必须要掌握的,初学我个人建议先从自己熟悉的扩展开始阅读,比如ext/standard/array.c里面是常用的数组操作函数,ext/mysql下是对mysql原生api的封装,直接阅读Zend内核源码可能有点头大。阅读之前先从网上找点资料,把常见的数据结构、函数、宏的意思搞明白,看底层实现会有种豁然开朗的感觉。工具的话vim+ctags足够了,喜欢IDE的话就Source Insight。 - 马犇

3. php学习方法:如何阅读php源代码

http://mp.weixin.qq.com/s?__biz=MzAwNjMxMTA5Mw==&mid=211794038&idx=1&sn=e0726f5334c5fb703ed1118403a1d8fb#rd - 泉-June

4. 网上的文章什么的看一看有个大概的了解。装好好点的能导航的编辑器,我用的sublime和ctags,然后从官方的那几个扩展开始看看别人怎么写的,主要就关注下对字符串,数组,内存,函数的输入输出的处理,然后自己写点处理字符串的扩展学习一下,再后来写点网络相关的,处理下持久化资源什么的。其实也就是你想做个什么事,别人一般都做过了,看看别人扩展怎么写的,那些宏看多了有用的就那么一些。 - lalala

5. http://www.php-internals.com/ 把这本书都搞透了就很牛逼了 - 姚文强

6. www.imsiren.com,这个blog学习扩展,lxr.php.net,搜索代码方便

挖路的walu.cc都是很好学习资源

解惑原理当然是鸟哥blog

如果你C玩的溜,那学起来就事半功倍 - 星星

7. 先了解两个结构hashtable和bucket,然后就可以了解各个php_function了,我就看了字符和数组相关函数,本来还想看看类方面的,实在是枯燥,犯困 - 徐刚

8. 只看原理那你能不犯困么?没有正反馈啊,你应该先写个简单扩展出来,然后是问why 你得有性奋点,时不时刺激下才行 为啥喜欢SEX呢,大家琢磨琢磨 - 星星bigxing

9. 对得 要写 然后不懂 再看书 消化 然后继续写。。光看理论。。。会睡着的 第一门语言最好是PYTHON 。。开阔视野~[偷笑] - 小明

10. 写扩展和看php源码还是两码事,不看源码也不影响写扩展呀

写扩展的目的一般是对自身业务的封装,出于性能或是其他因素,写不好是c语言功底的问题,可以学习php源码,也可以从一些更有针对性的来源项目源码去学习,后者更快 - 李鑫

11. 1 要了解php源码项目工程组织架构,确定比较感兴趣的部分

2 c 语言要过关,指针,struct 等知识点,看起来没压力。 - 罗金龙

12. PHP源码能够读懂。其实要有一定的C语言基础的,特别是指针和结构体。

不然,完全像在看天书。完全不知所谓。

先去把C语言结构体搞透,再去看PHP源码。不要越级。

国内有很多好的PHP源码解读的资料。不过有老,是PHP5.3的 - 如末

13. github 上有个tipi 很全面 - Feel.

14. 看源代码的动机是啥呢?觉得高大上?我倒是觉得看php的源码的意义远小于nginx和redis

Nginx的意义在于对网络通讯的理解,redis的代码能加深对数据结构的领悟 - tiyee

回: 萝卜白菜,各有所好呗…

不然里面的各种级别的结构体嵌套,指针里面还有指针的指针,还有指针的指针的指针,各种指针函数相互调用…分分钟就晕,建议带着问题去看,带着自己的思路去看,有针对性的去看。 - carlsonlin

回: 是的,读php源码性价比不如读nginx或者redis - song

回: 还好吧…php源码都看完了,redis和nginx无压力的… - carlsonlin

15. 我是首先把源码编译成debug版本,然后通过gdb tui来读,需要看看结构的时候就p出来 直接读代码的话借助ctags - nothing_zhangbc

16. 最快的方法就是自己动手,php项目庞大,单单看是很低效的

比如从写俄扩展开始

怎么定义一个函数给用户用

怎么定义一个类等等

这个过程中会要用到很多的zend api 从这些api入手就能理解Php是怎么给用户提供各种工具和函数了

至于eebook我之前记得说过它有一个不好的地方是把现象当成了定律

比如refcount refcount只是用来做垃圾回收

不是说一定的代码下refcount就一定是几 只要能保证垃圾回收是几并不重要

所以,少看,多动手 带着问题去研究,会很有意思 over:)

再加一句,PHP7开始,代码变化很大,很多优化的思想在里面,值得一读:)

另外,要搞清楚为啥读源码,是为了学习、学习啥呢? 如果学习网络编程,那读fpm部分,或者cli部分

如果是共享内存那就opcache部分 之类的

慢慢积累,不是说读PHP的源代码只是为了了解PHP

你读多了、C下面的各种东东就都熟了、那里都用得着的[呲牙]

反正,多读源码是有好处的,无论是是PHP还是其他的项目

我唯一的建议是尽量读c项目 别读c++的 后者太那啥了[偷笑] - 惠新宸

【分享链接】

1. 京东618 | Docker扛大旗,弹性伸缩成重点 http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=207702375&idx=1&sn=248f2599f35a9bf6fb3c6aad149fd41d - 黑夜路人

2. 是时候给糟糕的技术面试来场革命了 http://www.codeceo.com/article/the-terrible-technical-interview.html - 马犇

3. 许式伟:十一年逆流顺流,首席架构师到CEO http://mp.weixin.qq.com/s?__biz=MjM5MjE3NDA1Mw==&mid=201422576&idx=1&sn=909981e0cf0fba99d154f17c56972c41 - phperzone

坚持原创技术分享,您的支持将鼓励我继续创作!