1.php源码下的几个主要目录:SAPI、main、Zend、ext。SAPI是PHP的应用接口层。main是PHP的主要代码,主要进行输入/输出、Web通信、PHP初始化操作(如fastcgi协议分析、扩展加载、PHP配置分析等),位于ZendVM的上层。Zend是PHP解析器的主要实现,即ZendVM,它是PHP语言PHP代码的核心实现,PHP代码的解释和执行都是由Zend完成的。ext是PHP的扩展目录。TSRM是线程安全相关的实现。2、PHP的基本组成:1)SAPI常用的两个SAPI是Fpm和CliSAPI层是整个PHP框架的最外层。不同的SAPI适应不同的环境(如命令行、web等),主要负责框架的初始化。如果SAPI是一个独立的应用程序(比如cli或者fpm),那么main函数也是在SAPI中定义的。2)ZendVMZendVM是一台虚拟计算机,介于PHP应用程序和实际计算机之间。我们写的PHP代码都是由它解释执行的。它主要由两部分组成:编译器、执行器。编译器负责将PHP代码解释为执行者可识别的指令。执行器负责执行编译器解释的指令。ZendVM相当于Java中的JVM,都是抽象出来的虚拟计算机。3)Extension扩展是PHP核心提供的一组方法,用来补充PHP的功能。扩展分为PHP扩展和Zend扩展。PHP扩展更为常见。Zendextensions主要用在ZendVM中,Opcache是??Zendextensions。
