PHP源码学习笔记1-SAPI理解

预备知识

PHP目录构成

PHP的源码有一下几个主要目录构成:SAPI、main、Zend、ext;

  • SAPI:PHP的应用接口层
  • main:PHP主要代码——输入输出、Web通信,以及PHP框架初始化操作
  • Zend:PHP解析器的主要实现,PHP语言的核心实现,主要功能是PHP代码的解释、执行
  • ext:PHP的扩展目录
PHP的基本构成
PHP的基本构成
PHP生命周期

PHP生命周期有五个阶段

模块初始化阶段->请求初始化阶段->请求初始化阶段->执行脚本阶段->请求关闭阶段->模块关闭阶段

module startup->request startup->execute script->request shutdown->module shutdown

SAPI理解

SAPI(Server Application Programming Interface 服务器端应用编程接口)

这是PHP内核提供给外部调用其服务的接口,即外部系统可以通过SAPI来调用PHP提供的编译脚本、执行脚本的服务,,PHP中实现的SAPI有很多,Cli、Fpm是我们比较常见的。此部分的代码位于PHP源码的/sapi目录下。

SAPI与生命周期

模块初始化阶段请求初始化阶段模块关闭阶段都会有SAPI的参与

模块初始化阶段 module startup:
激活SAP:sapi_activate(),初始化请求信息SG(request_info)、设置读取POST请求的handler等,在module start阶段处理完成后将调用sapi_deactivate()。

请求初始化阶段 request startup:
激活SAP:sapi_activate()。

模块关闭阶段 module shutdown:
sapi_flush 输出缓冲内容

友链,侵删

PHP内核学习(一)SAPI
跟厂长学PHP7内核(六):生命周期之请求初始化阶段
php 单进程SAPI生命周期

你可能感兴趣的:(PHP源码学习笔记1-SAPI理解)