资讯专栏INFORMATION COLUMN

PHP的生命周期

sf190404 / 2827人阅读

摘要:的启动和终止请求之前的开始阶段模块初始化阶段。的生命周期单进程生命周期多进程生命周期多线程的生命周期是一种比较特殊的,容许你在语言中调用提供的函数。不太了解,明天看一下综述理一下的生命周期,以及整个执行过程。

PHP的架构图

SAPI
SAPI(Server Application Programming Interfac) is an application programming interface (API) provided by the web server to help other developers in extending the web server capabilities.

SAPI是一个用来帮助其他开发程序扩展web服务器功能的应用程序接口(api)。它将外部条件抽象, 为内部的PHP提供一套固定统一的接口, 使得PHP自身实现能够不受外部环境影响,保持一定的独立性。
PHP中常用的SAPI有cli(命令行模式,单进程)、php-fpm、CGI、Apache...
有点像策略模式,使用相同的接口,但是实现会略有不同。

PHP的启动和终止

请求之前的开始阶段:

MINIT:模块初始化阶段。初始化一些扩展、常量、类、资源等所有被php脚本用到的东西。(常驻内存,可以被所有请求使用。)

PRINT:模块激活阶段。PHP会调用所有模块的RINIT函数,在这个阶段各个模块也可以执行一些相关的操作,比如初始化本次请求使用到的变量。

请求之后的结束阶段:

RSHUTDOWN:这个页面请求执行完毕,或者被用户给die(exit)了, 这时PHP会启动回收程序,回收本次请求使用的资源。这次会执行所有已加载扩展的RSHUTDOWN(俗称Request Shutdown)方法, 这时候扩展可以利用内核中的变量表等做的一些事情。因为PHP一旦把所有扩展的RSHUTDOWN方法执行完,便会释放掉这次请求使用过的所有资源,比如变量表的所有变量、所有在这次请求中申请的内存等。

MSHUTDOWN:PHP执行所有扩展的MSHUTDOWN,释放资源。

PHP的生命周期

1.单进程SAPI生命周期(CLI/CGI)

2.多进程SAPI生命周期(Apache2)

3.多线程的SAPI生命周期

4.Embed

Embed SAPI是一种比较特殊的sapi,容许你在C/C++语言中调用PHP/ZE提供的函数。(不太了解,明天看一下! http://www.laruence.com/2008/09/23/539.html)

综述

理一下PHP的生命周期,以及PHP整个执行过程。还有怎么通过SAPI和PHP模块沟通.
(图片基本是从参考链接那边拿过来的,站在前人的肩膀上。)

参考

http://www.laruence.com/2008/08/12/180.html

https://en.wikipedia.org/wiki/Server_Application_Programming_Interface

http://www.cunmou.com/phpbook/1.1.md

https://foio.github.io/php-sapi/

http://www.php-internals.com/book/?p=chapt02/02-01-php-life-cycle-and-zend-engine

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28252.html

相关文章

  • PHP工作原理和生命周期

    摘要:的工作原理和生命周期是一门适用于开发的动态语言,它可以说是一个用语言实现的包含大量组件的软件框架。无论是哪种公众模式,的工作原理都是一样的,都是作为一种运行。 PHP的工作原理和生命周期 php是一门适用于web开发的动态语言,它可以说是一个用C语言实现的包含大量组件的软件框架。那么,php是如何工作的呢?它的生命周期是怎么样的呢? 表层分析 php是以请求/响应为周期运行服务端应用...

    happyhuangjinjin 评论0 收藏0
  • PHP7源码学习】2019-04-25 PHP生命周期浅析

    摘要:在此函数的实现种主要有以下几个函数初始化内部字符串哈希表启动的输出激活引擎激活,进行编译器,重置,执行器以及词法扫描器。 Grape 视频传送门:【每日学习记录】使用录像设备记录每天的学习 今天我们来看下PHP的生命周期,我们都知道PHP生命周期有五个步骤,那么在源码层级是怎么去实现PHP生命周期呢?首先,我们抛出本文的几个问题: php的生命周期是什么?每个阶段做了什么? 为什么...

    zxhaaa 评论0 收藏0
  • PHP生命周期

    摘要:结算处理顺利运行完文件用户主动致命回收程序释放掉这次请求使用过的所有东西包括变量表的所有变量所有在这次请求中申请的内存等等请确保文件可写,否则会莫名崩溃让我们看看是不是每次请求结束都会在这个文件里追加数据通知自己要的时候,便进入俗称阶段。 /* * PHP生命周期 * PHP程序的启动 * 前置初始化(Apache或Nginx相关操作) * ...

    sushi 评论0 收藏0
  • PHP生命周期

    摘要:的整个生命周期被划分为以下几个阶段模块初始化阶段请求初始化阶段执行脚本阶段请求关闭阶段模块关闭阶段。 PHP的整个生命周期被划分为以下几个阶段:模块初始化阶段(module startup)、请求初始化阶段(request startup)、执行脚本阶段(executescript)、请求关闭阶段(request shutdown)、模块关闭阶段(module shutdown)。根据...

    wh469012917 评论0 收藏0
  • Laravel 请求生命周期

    摘要:应用实例所依赖的服务提供者可以在配置文件中的节点找到。完成所有服务提供者注册到应用实例后,应用实例执行启动方法引导项目启动。或内核接收到请求,加载服务提供者,同时,将请求分发给路由器执行。 这是一篇翻译文章,原文 Request Life Cycle of Laravel,译文 Laravel 请求生命周期 首发于个人博客,转载请注明出处。 当需要使用一个框架、工具或者服务时,在使用前...

    junfeng777 评论0 收藏0

发表评论

0条评论

sf190404

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<