拿php7.1.7为例,介绍一下php的源码目录结构,即每个目录的是做什么用的。
appveyor:里面都是一些bat脚本,为PHP的Windows构建提供持续集成。
build:linux下编译相关的目录。
ext:即extension,php下的扩展包源码,如我们熟知的mysqli、gd、curl、mbstring等等。
main:为php的主要代码,主要是输入/输出、web通信,以及php框架初始化操作等,比如fastcgi协议的解析、扩展的加载、php配置的解析等工作都是由它来完成的。
netware:网络目录,以前的版本没有此目录,里面有2个文件sendmail_nw.h、start.c,分别定义socket通信所需要的头文件和具体实现。
pear:扩展包目录,PEAR即:PHP Extension and Application Repository。它是一个PHP扩展及应用的一个代码仓库,简单地说,pear就是PHP的cpan。具体用户可以查阅相关资料。
sapi:是php的应用接口层。我们可以在不同环境中应用php,比如命令行下、web环境中、嵌入其他应用。为此,php提供一个SAPI层以适配不同的应用环境,SAPI可以认为是php的宿主环境,也是整个php框架最外层的一部分,它主要负责php框架的初始化工作。经常用到的3个SAPI是cgi、cli、fpm。
scripts:脚本目录。
tests:测试目录,Helper for simple tests to check return-value。
travis:compile.sh
TSRM:线程安全相关的实现。
win32:Windows下编译PHP有关的脚本。
Zend:是php解析器的主要实现,即ZendVM,它是php语言的核心实现,php代码的解释、执行就是由zend完成的。它介于应用与实际计算机中间,主要分为:编译器、执行器两个部分。其中编译器负责将php代码解释为执行器可以识别的指令,执行器负责执行指令,ZendVM相当于java中的JVM,他们都是抽象出来的虚拟计算机。
文章出自:https://www.daixiaorui.com/read/267.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
蛋仔派对无限蛋币http://www.wzryzs.com/
666
666
很好的方法值得推荐
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/
gg修改器https://www.guiyangtax.com/ 葫芦侠http://www.booj.net/ 八门神器http://www.tusovok.net/