PHP 生命周期
PHP的生命周期
模块初始化
// 代码路径mian/mian.c
php_module_startup
- 激活SAPI,主要是对SG宏进行初始化,包括返回码、返回头、请求体、cookie等
- 初始化垃圾回收,调用gc_globals_ctor_ex函数对gc进行初始化和重置
- 初始化Zend引擎
- 启动内存管理器(start_memory_manager)
- 设置编译文件(zend_complie_file)和执行文件(zend_execute_file)函数句柄
- 初始化opcode执行句柄(zend_init_opcodes_handlers)
- 初始化(函数符号表)GLOBAL_FUNCTION_TABLE、(类符号表)GLOBAL_CLASS_TABLE、(超全局符号表)GLOBAL_AUTO_GLOBALS_TABLE、(常量符号表)GLOBAL_CONSTANTS_TABLE
- 初始化$GLOBALS超全局变量函数句柄
- 解析配置文件
- 注册超全局变量($_POST、$_GET、$_COOKIE、$_SERVER、$_ENV、$_REQUEST、$_FILES)
- 注册静态扩展
- 注册INI中配置的动态加载的扩展
- 调用各PHP扩展中的PHP_MINIT()
- 调用个ZEND扩展的startup函数
SG sapi
OG 输出
PG 核心
AG 内存管理
CG 编译
EG 执行
BG 基础
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: