摘要:的整个生命周期被划分为以下几个阶段模块初始化阶段请求初始化阶段执行脚本阶段请求关闭阶段模块关闭阶段。
PHP的整个生命周期被划分为以下几个阶段:模块初始化阶段(module startup)、请求初始化阶段(request startup)、执行脚本阶段(executescript)、请求关闭阶段(request shutdown)、模块关闭阶段(module shutdown)。根据不同SAPI的实现,各阶段的执行情况会有一些差异,比如命令行模式下,每次执行一个脚本都会完整地经历这些阶段,而FastCgi模式下则在启动时执行一次模块初始化,然后各个请求只经历请求初始化、执行请求脚本、请求关闭几个阶段,在SAPI关闭时经历模块关闭阶段。
模块初始化阶段
激活SAPI
启动PHP输出
初始化垃圾回收器
启动Zend引擎
启动内存池
设置一些util函数句柄
设置Zend虚拟机编译、执行器的函数句柄
分配函数符号表、类符号表、常量符号表
注册Zend核心扩展
注册Zend定义的标准常量
注册$GLOBALS超全局变量的获取handler
分配php.ini配置的存储符号表
注册PHP定义的常量
解析php.ini
映射PHP、Zend核心的php.ini配置
注册用于获取 $_GET、$_POST、$_COOKIE、$_SERVER、$_ENV、$_REQUEST、$_FILES 变量的 handler
注册静态编译的扩展
注册动态加载的扩展
回调各扩展定义的module starup钩子函数
注册php.ini中禁用的函数、类
请求初始化阶段
激活输出
激活Zend引擎
重置垃圾回收器
初始化编译器
初始化执行器
初始化词法扫描器
激活SAPI
回调各扩展定义的request startup钩子函数
执行脚本阶段
编译阶段
PHP 源代码
抽象语法树
opline指令
执行阶段
请求关闭阶段
flush输出内容
发送HTTP应答header头
清理全局变量
关闭编译器
关闭执行器
模块关闭阶段
进行资源的清理
PHP各模块的关闭操作
回调各扩展的module shutdown钩子函数
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29351.html
摘要:的工作原理和生命周期是一门适用于开发的动态语言,它可以说是一个用语言实现的包含大量组件的软件框架。无论是哪种公众模式,的工作原理都是一样的,都是作为一种运行。 PHP的工作原理和生命周期 php是一门适用于web开发的动态语言,它可以说是一个用C语言实现的包含大量组件的软件框架。那么,php是如何工作的呢?它的生命周期是怎么样的呢? 表层分析 php是以请求/响应为周期运行服务端应用...
摘要:应用实例所依赖的服务提供者可以在配置文件中的节点找到。完成所有服务提供者注册到应用实例后,应用实例执行启动方法引导项目启动。或内核接收到请求,加载服务提供者,同时,将请求分发给路由器执行。 这是一篇翻译文章,原文 Request Life Cycle of Laravel,译文 Laravel 请求生命周期 首发于个人博客,转载请注明出处。 当需要使用一个框架、工具或者服务时,在使用前...
阅读 2988·2023-04-26 00:32
阅读 474·2019-08-30 15:52
阅读 2082·2019-08-30 15:52
阅读 3325·2019-08-30 15:44
阅读 3234·2019-08-30 14:09
阅读 1403·2019-08-29 15:15
阅读 3368·2019-08-28 18:12
阅读 1059·2019-08-26 13:55