有幸最近在读秦朋的《PHP内核剖析》一书,收获良多,为了加深自己的理解,依照书中内容自己动手画了一些流程图。本文主要描述PHP的基本构成、生命周期、以及各个阶段的大体流程。

PHP的构成

PHP的源代码下有几个主要目录:SAPI、main、Zend、ext。其中

  • SAPI是PHP的应用接口层;
  • main为PHP的主要代码;
    • 主要是输入/输出、Web通信,以及PHP框架的初始化操作等,比如fastcgi协议的解析、扩展的加载、PHP配置的解析等工作。
  • Zend是PHP解析器的主要实现;
    • 即ZendVM,它是PHP语言的核心实现,PHP代码的解释、执行就是由Zend完成的。
  • ext是PHP的扩展目录;
  • TSRM为线程安全相关的实现。

PHP的生命周期

1.模块初始化阶段

2.请求初始化阶段

3.执行脚本阶段

4.请求关闭阶段

5.模块关闭阶段