启动SAPI → 模块初始化(MINIT)→ 请求循环 → 请求初始化(RINIT)→ 编译执行 → 请求关闭(RSHUTDOWN)→ 请求循环结束 → 模块关闭(MSHUTDOWN)
1. 模块初始化阶段(MINIT)
-
触发时机:PHP进程启动时(如php-fpm启动、CLI脚本启动)
-
核心动作:
// php-src/main/php.h PHP_MINIT_FUNCTION(my_extension) { REGISTER_INI_ENTRIES(); // 注册php.ini配置 zend_register_class(...); // 注册类/函数 return SUCCESS; } -
关键行为:
-
加载所有扩展(扩展的MINIT方法被调用)
-
解析php.ini配置到全局哈希表
-
注册全局常量、类、函数到CG(function_table)
-
-
内存分配:常驻内存(直到进程结束)
2. 请求初始化阶段(RINIT)
-
触发时机:每个请求开始时(如HTTP请求到达)
-
核心动作:
// php-src/main/php_variables.c PHP_RINIT_FUNCTION() {

最低0.47元/天 解锁文章
407

被折叠的 条评论
为什么被折叠?



