PHP Cycle Life
运行流程解析
目录
php 运行阶段
-
开始阶段
-
模块初始化 MINIT (module init) 这个阶段,将对每个扩展的PHP_MINIT_FUNCTION函数执行。一般执行如下操作:
- INI 配置文件的注册 REGISTER_INI_ENTRIES
- 定义该扩展实现的类, Interface等
- 定义的const变量
-
模块激活 RINIT (Request init)
每个请求进入时,将调用每个扩展的PHP_RINIT_FUNCTION。一般有如下需求会调用该方法:- 重置之前的请求, 例如 spl 扩展。
- 通过请求数据,初始化模块的参数。 例如 mbstring 扩展。
-
-
运行阶段
- 进入PHP文件执行
-
结束阶段
- 停用模块 RSHUTDOWN ( Request shutdown) 与 RINIT 相对应
- 关闭模块 MSHUTDOWN (module shutdown)
与 MINIT 相对应
不同的PHP运行环境,PHP的生命周期不同
php 命令行模式
php Multi Process 模式
PHP Multi Threaded 模式
其他一些函数
- PHP_GINIT_FUNCTION 全局变量初始化
- PHP_GSHUTDOWN_FUNCTION
- PHP_MINFO_FUNCTION 设置INI 文件中模块的信息, phpinfo 时打印的数据
- CG Complier Global
- EG Executor Global
- PG PHP Core Global
- SG SAPI Global