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 基础

php
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!