当前位置:首页 > PHP教程 > 正文内容

php 的生命周期【php教程】,php,生命周期

搜教程4年前 (2019-12-01)PHP教程154

1、PHP的运转形式:

PHP两种运转形式是WEB形式、CLI形式。不管哪一种形式,PHP事情道理都是一样的,作为一种SAPI运转。

1、当我们在终端敲入php这个敕令的时刻,它运用的是CLI。

它就像一个web服务器一样来支撑php完成这个要求,要求完成后再从新把控制权交给终端。

2、当运用Apache或许别web服务器作为宿主时,当一个要求到来时,PHP会来支撑完成这个要求。平常有:

多历程(一般编译为apache的模块来处置惩罚PHP要求)

多线程形式

扼要的实行历程:

1. PHP是跟着Apache的启动而运转的;

2. PHP经由过程mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用顺序编程接口);
3. PHP总共有三个模块:内核、Zend引擎、以及扩大层;
4. PHP内核用来处置惩罚要求、文件流、错误处置惩罚等相干操纵;
5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在假造机上运转它;
6. 扩大层是一组函数、类库和流,PHP运用它们来实行一些特定的操纵。比方,我们须要MySQL扩大来衔接MySQL数据库;
7. 当ZE实行顺序时可能会须要衔接多少扩大,这时候ZE将控制权交给扩大,等处置惩罚完特定使命后再返还;
8. 末了,ZE将顺序运转效果返回给PHP内核,它再将效果传送给SAPI层,终究输出到浏览器上。

2. 运转PHP的几个阶段:

SAPI运转PHP都经由下面几个阶段:
1、模块初始化阶段(Module init) :
即挪用每一个扩大源码中的的PHP_MINIT_FUNCTION中的要领初始化模块,举行一些模块所需变量的请求,内存分派等。
2、要求初始化阶段(Request init) :
即接受到客户端的要求后挪用每一个扩大的PHP_RINIT_FUNCTION中的要领,初始化PHP剧本的实行环境。
3、实行PHP剧本
4、要求终了(Request Shutdown) :
这时候刻挪用每一个扩大的PHP_RSHUTDOWN_FUNCTION要领清算要求现场,而且ZE最先接纳变量和内存。
5、封闭模块(Module shutdown) :
Web服务器退出或许敕令行剧本实行终了退出会挪用扩大源码中的PHP_MSHUTDOWN_FUNCTION 要领

3. 种种情况下的SAPI生命周期。

1. 单历程SAPI生命周期。(CGI)

CLI/CGI形式的PHP属于单历程的SAPI形式。这类的要求在处置惩罚一次要求后就封闭。也就是说每次要求都邑反复这几个环节: 最先 - 要求最先 - 要求封闭 - 终了 。能够看到扩大的初始化花费了许多资本。

2. 多历程SAPI生命周期。(MPM的perfork体式格局)

一般PHP是编译为apache的一个模块来处置惩罚PHP要求(mod_php)。Apache平常会采纳多历程形式, Apache启动后会fork出多个子历程(apache里能够指定最先fork出来的历程数)。每一个历程的内存空间自力,每一个子历程刚被fock出来都邑经由最先和终了环节。

3. 多线程的SAPI生命周期。(FastCGI或许MPM的work体式格局里的单个历程)

多线程形式和多历程中的某个历程相似,在这类形式下,只要一个服务器历程在运转着,但会同时运转许多线程,如许能够削减一些资本开支,向Module init和Module shutdown就只须要运转一遍就好了,一些全局变量也只须要初始化一次,由于线程独具的特质,使得各个要求之间轻易的同享一些数据成为可能。

更多PHP相干技术文章,请接见PHP教程栏目举行进修!

以上就是php 的生命周期的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15463.html

标签: php生命周期
分享给朋友:

“php 的生命周期【php教程】,php,生命周期” 的相关文章

fputs函数怎样用【php教程】,fputs函数

fputs函数怎样用【php教程】,fputs函数

php fputs()函数是fwrite()函数的别号。 php fputs()函数 语法 作用:写入文件(可平安用于二进制文件)。 语法: fputs(file,string,length) 参数: file 必须。划定要写入的翻开文件。 string 必须。划定要写入文件的...

怎样从PHP中的字符串中删除换行符?(代码示例)【php教程】,PHP,str_replace(),preg_replace()

怎样从PHP中的字符串中删除换行符?(代码示例)【php教程】,PHP,str_replace(),preg_replace()

在PHP中能够运用内置函数:str_replace()函数或preg_replace()函数来删除字符串中的换行符,下面本篇文章就来带人人相识一下这两个函数是怎样删除换行符的,愿望对人人有所协助。 要领一:运用str_replace()函数 str_replace()函数能够用于以其...

PHP框架中MVC架构的剖析(附示例)【php教程】,php,yii,设计模式

本篇文章给人人带来的内容是关于PHP框架中MVC架构的剖析(附示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 在说 MVC 架构之前,先说说PHP框架吧。许多许多学完PHP言语的人,面临的就是PHP林林总总的框架。什么TP啊、Yii啊、CI啊,另有很盛行的laravel...

PHP支撑CURL字符串证书传输的要领引见(代码)【php教程】,PHP

本篇文章给人人带来的内容是关于PHP支撑CURL字符串证书传输的要领引见(代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 近来在对接微信付出的时刻,须要在退款处用到证书,因为我们是SAAS平台,要支撑多方多渠道付出,假如把一切证书文件保留在应用服务器会遭到SLB的影响,...

Content-Type作用是什么?【php教程】,Content-Type

Content-Type作用是什么?【php教程】,Content-Type

Content-Type 实体头部用于指导资本的MIME范例 media type 。 在相应中,Content-Type标头通知客户端现实返回的内容的内容范例。浏览器会在某些情况下举行MIME查找,并不一定遵照此题目的值; 为了防备这类行动,能够将题目 X-Content-Type-Opti...

装置discuzX3.4后没有任何款式解决方案【php教程】,PHP,discuzX3.4样式

装置discuzX3.4后没有任何款式解决方案【php教程】,PHP,discuzX3.4样式

Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件体系。它的基本架构是web编程组合PHP+MySQL。本篇文章的主要内容是处理装置discuzX3.4后没有任何款式的计划,感兴趣的朋侪相识一下。 题目:近来在做论坛,...