PHP底层探索(二):一次请求的开始与结束

PHP开始执行以后会经过两个主要阶段:
1.处理请求之前的开始阶段
2.请求之后的结束阶段

开始阶段有两个过程:
1)过程是模块初始化阶段(MINIT),在整个SAPI声明周期内,该过程只执行一次.
2)过程是模块激活阶段(RINIT),该过程发生在请求阶段,例如请求某页面,则在每次请求之前都会进行模块激活(RINIT请求开始).例如PHP注册了一些扩展模块,则在MITIT阶段会回调所有模块的初始化函数.模块在这个阶段可以进行一些初始化工作,例如注册常量,定义模块使用的类等等.

模块在是显示可以通过PHP_MINIT_FUNCTION() 函数来返回注册常量或类初始化操作

请求到达之后,PHP初始化执行脚本的基本环境, 例如创建一个执行环境,然后保存PHP运行过程中变量名称和值内容的符号表,以及当前所有函数等.然后PHP会调用所有模块的RINIT函数,在这个阶段各个模块也能执行一些相关操作,模块的的RINIT函数与初始化回调(MINIT)函数类似: PHP_RINIT_FUNCTION

请求处理完成后就进入了结束阶段,一般脚本执行到末尾或者通过调用exit()或die()函数,PHP都将进入结束阶段.和开始阶段对应,结束阶段也分两个环节
1,在请求结束后停用模块(RSHUWDOWN 对应 RINIT)
2,在SAPI声明周期结束时,关闭模块(MSHUTDOWN,对应MINIT)
PHP_RSHUTDOWN_FUNCTION

具体流程如图所示
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值