作为一个开发者,我发现在我的日常工作中越来越多地查看PHP的源码。在为了弄清楚奇怪的边界问题和为什么某些问题应该发生的却没有发生而去理解背后究竟发生了什么事情的时候非常有用。在文档缺失、不完整或者错误的情况下也很有用。因此,我已经决定通过一系列的文章来分享我学到的知识,给予PHP开发者们足够的知识去真正阅读PHP的C语言源码。你并不需要有C语言的基础(我们会总结一些基础),但如果有的话会更有帮助。
这是这个系列的第一篇文章。在这篇文章,我们会谈论PHP程序的基础:在哪里找到它,基本的代码结构和一些最基础的C语言概念。需要说明的是,这一系列文章的目标是获得源码的阅读理解能力。这意味着为了过一下某些点,某些概念会被简化而不是太复杂的描述。这不会给阅读造成明显的差异,但如果你想为源码做贡献,则还有更多的知识需要补充。在我做简化的时候,我会尽量指出这些简化。
另外,这系列文章是基于5.4版本的源码,在不同版本中,大部分概念都是一样的,但这里,我们需要针对这次的文章有一个版本的定义(为了让新的版本出来后接下来的文章更容易地遵循)。
那么,我们可以开始了吧?
在哪里找到PHP的源码下载PHP源码最简单的方式是通过PHP的SVN仓库。对于这此文章,我们检出(chckout)了5.4的分支。这对于成为PHP的前沿或者真正的开发PHP(解决bugs,实现特性等等)来说是非常棒的。值得注意的是,PHP社区正在(这篇文章正在写的时候)将源码迁移到GIT仓库中。一旦迁移完成,我会更新这篇文章以达到标准。(译者注:译者翻译的时候PHP已经迁移到GIT仓库了)。
事实上,下载源码对我们的目的来说并不是真正的有用。我们不想编辑它,我们只是想使用它和跟踪它是如何运行的。我们可以下载它,然后导入到一个好的IDE中,在这些IDE中我们可以点击跳到函数的定义和声明,当我发现这比想象中略困难。我有一个更好的解决方案。
事实证明,PHP社区在维护一个对于我们来说一个非常好的工具。那就是lxr.php.nt。这主要是一个自动生成可搜索的源码列表,而且有语法高亮和函数全部有链接的。这个是我几乎只用来浏览C源码的工具,实在太棒(即使在我写补丁的时候,我依然到lxr而不是我正在开发的代码库)。我们还不会讲到如何做更有效的搜索,但我们会在谈论PHP核心函数的时候讲到。
从这里开始,我们将开始谈论PHP5.4。为了达到这目的,我们会使用这个lxr链接作为其他文章的基础。当我提到“5.4的根目录”的时候,我就是说这个页面。
那么,既然我们可以查看源码目录了,那么我们来谈谈这里面都有什么吧。
PHP源码结构那么,当你查看列在5.4的根目录的文件和目录时,还有很多可以研究。我希望你只北京治疗白癜风技术好的医院北京哪家治白癜风的医院好