PHP源码阅读-Part1-结构
注:这篇文章的内容出自ircmaxell的博客,这里只是翻译整理一下!
了解一件事情背后的原理,可以让我们处理起这件事情更加得心应手。这是PHP源码的第一篇博文,主要简单介绍从哪里获取源码、源码的大概结构。另外,这里源码统一使用5.4版本,一定要注意这点,后面的实验可能会因为版本不同而出现意外的结果。
去哪里找到源码
PHP社区已经将PHP源码管理迁移到GIT,你可以在上面获取任何版本的PHP源码,打包下载到本地即可。如果你的电脑上装有git环境。可以使用如下的命令获取源码:
git clone https://github.com/php/php-src.git
切换为5.4版本:
cd php-src git checkout PHP-5.4
有了源码你就可以选择一款你喜欢的IDE,进行查看,不过这里强烈推荐使用PHP社区提供的一个PHP源码分析分析工具,网址为lxr.php.net。这个工具提供了基本的搜索、定义跳转等功能,分析源码足够了。
PHP源码结构
PHP的源码是用C语言写的,进入到PHP源码根目录,你会发现很多文件,顿感迷惑。现在我们只需要把注意力集中在ext和zend两个目录。其他的文件我们暂时不会用到。
PHP主要分为两个部分,第一部分是Zend引擎,主要处理"语言"级别的事情,为我们的PHP代码提供运行环境。我们写好的代码要经过Zend引擎的语法解析,执行。可以说没有Zend引擎就没有PHP。相应的Zend引擎的源码就存放在刚才的Zend目录下。
PHP第二部分就是大量的核心扩展,说白了就是那些常用的函数,比如:strpos、array_diff、mysql_connect等等,当然也包括一些类库,如PDO。这部分的源码主要在刚才的ext目录下。