现在的位置: 首页 -> PHP学习 -> PHP生命周期

PHP生命周期

2018-04-29 22:08评论数 0 ⁄ 被浏览 14132 views+

PHP整个生命周期可以被划分为以下几个阶段:模块初始化阶段、请求初始化阶段、脚本执行阶段、请求关闭阶段、模块关闭阶段。根据不同的SAPI的实现,各阶段的执行情况会略有差异。比如命令模式下,每次执行一个脚本都会完整地经历这些阶段,而FastCgi模式下则在启动时执行一次模块初始化。


现在具体介绍下这5个阶段:


1、php_module_startup() 模块初始化阶段

本阶段主要进行php框架、Zend引擎的初始化操作,比如启动zend引擎、解析php.ini、将php.ini中配置的扩展加载到php中,注册php.ini中禁用的函数、类:disable_functions、disable_classes,等。


2、php_request_startup() 请求初始化阶段

该阶段是在请求处理前每个请求都会经历的一个阶段,对于Fpm而言,实在worker进程中accept一个请求并读取、解析完请求数据后的一个阶段。

主要完成以下几个操作:

激活输出:php_output_activate()。

初始化编译器、执行器、重置垃圾回收器、初始化全局变量符号表。


3、php_execute_script() 执行脚本阶段

该阶段包括php代码的编译、执行两个核心阶段,这也是Zend引擎最重要的功能。在编译阶段,php脚本将经历从php源码到抽象语法树再到opline指令的转化过程,最终生成的opline指令就是Zend引擎可以识别的执行指令,这些指令接着被执行器执行,这就是php代码解释执行的过程。


4、php_request_shutdown() 请求关闭阶段

与请求初始化阶段相反,此阶段将flush输出内容、发送header头、清理全局变量、关闭编译器、关闭执行器等。


5、php_module_shutdown() 模块关闭阶段

与模块初始化阶段相反,次阶段将清理资源、各php模块关闭等操作。


 

文章出自:https://www.daixiaorui.com/read/274.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

目前有 0 条评论  @我要评论

    您的每一个评论都是对我的一份支持

     博客二维码

    昵称 *

    邮箱 *