更改
跳到导航
跳到搜索
←上一编辑
下一编辑→
常见问题
(查看源代码)
2019年10月22日 (二) 15:12的版本
添加1,731字节
、
2019年10月22日 (二) 15:12
→Laravel请求生命周期
第218行:
第218行:
https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/80637277
https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/80637277
+
+
== php生命周期 ==
+
# 模块初始化阶段 --- php_module_startup()
+
这个阶段主要进行php框架、zend引擎的初始化操作。这个阶段一般是在SAPI启动时执行一次,对于FPM而言,就是在fpm的master进行启动时执行的。php加载每个扩展的代码并调用其模块初始化例程(MINIT),进行一些模块所需变量的申请,内存分配等。
+
# 请求初始化阶段 --- php_request_startup()
+
当一个页面请求发生时,在请求处理前都会经历的一个阶段。对于fpm而言,是在worker进程accept一个请求并读取、解析完请求数据后的一个阶段。在这个阶段内,SAPI层将控制权交给PHP层,PHP初始化本次请求执行脚本所需的环境变量。
+
# 执行脚本阶段 --- php_execute_script()
+
php代码解析执行的过程。Zend引擎接管控制权,将php脚本代码编译成opcodes并顺次执行
+
# 请求关闭阶段 --- php_request_shutdown()
+
请求处理完后就进入了结束阶段,PHP就会启动清理程序。这个阶段,将flush输出内容、发送http响应内容等,然后它会按顺序调用各个模块的RSHUTDOWN方法。 RSHUTDOWN用以清除程序运行时产生的符号表,也就是对每个变量调用unset函数。
+
# 模块关闭阶段 --- php_module_shutdown()
+
该阶段在SAPI关闭时执行,与模块初始化阶段对应,这个阶段主要是进行资源的清理、php各模块的关闭操作,同时,将回调各扩展的module shutdown钩子函数。这是发生在所有请求都已经结束之后,例如关闭fpm的操作。(这个是对于CGI和CLI等SAPI,没有“下一个请求”,所以SAPI立刻开始关闭。)
Yaosong
行政员
、
界面管理员
、
管理员
133
个编辑
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
特殊页面
可打印版本