美文网首页
《编程原理系列》03 - PHP运行生命周期

《编程原理系列》03 - PHP运行生命周期

作者: 聂云⻜ | 来源:发表于2020-01-05 23:44 被阅读0次

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模块关闭等操作。

相关文章

  • 《编程原理系列》03 - PHP运行生命周期

    PHP整个生命周期可以被划分为以下几个阶段:模块初始化阶段、请求初始化阶段、脚本执行阶段、请求关闭阶段、模块关闭阶...

  • PHP的学习

    PHP运行领域 。 PHP运行环境 PHP网页运行原理 安装apache 配置apache以运行PHP程序 用法1...

  • PHP扩展

    php扩展运行原理 ①php运行原理zend引擎初始化 ->extensions->sapi->上层应用扩展运行原...

  • php二次开发总结

    一、PHP原理介绍 1、本质:php生成html 2、php是服务器编程语言,也就是说用其开发的程序是在服务器运行...

  • 《编程原理系列》01 - PHP执行原理

    PHP的执行原理是面试过程中经常会问到的考点之一,本篇主要是对此类问题做一汇总,持续更新。 抛开面试,了解PHP底...

  • php生命周期问题

    选用php作为后端语言就不得不清楚php生命周期的问题 php生命周期和运行模式有很大的关系 cli模式 : 1....

  • PHP配置

    php的介绍 php运行原理 配置apache初始化apache后,还不能运行php代码。我们需要对apache进...

  • swoole与php-fpm 处理php

    参考资料Nginx+Php-fpm 运行原理详解PHP-FPM vs Swooleswoole高性能原理 本文全是...

  • php运行原理

    PHP总共有三个模块:内核、Zend引擎、以及扩展层; PHP内核用来处理请求、文件流、错误处理等相关操作; Ze...

  • php内核学习-生命周期与执行过程

    layout: posttitle: php内核学习-生命周期与执行过程date: 2016-03-28categ...

网友评论

      本文标题:《编程原理系列》03 - PHP运行生命周期

      本文链接:https://www.haomeiwen.com/subject/tbchactx.html