這篇文章將為大家詳細(xì)講解有關(guān)PHP的生命周期,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
為企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、全網(wǎng)營(yíng)銷推廣、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營(yíng)銷運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷”三大難題,同時(shí)降低了營(yíng)銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
PHP的架構(gòu)圖
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是一個(gè)用來(lái)幫助其他開(kāi)發(fā)程序擴(kuò)展web服務(wù)器功能的應(yīng)用程序接口(api)。它將外部條件抽象, 為內(nèi)部的PHP提供一套固定統(tǒng)一的接口, 使得PHP自身實(shí)現(xiàn)能夠不受外部環(huán)境影響,保持一定的獨(dú)立性。
PHP中常用的SAPI有cli(命令行模式,單進(jìn)程)、php-fpm、CGI、Apache...
有點(diǎn)像策略模式,使用相同的接口,但是實(shí)現(xiàn)會(huì)略有不同。
PHP的啟動(dòng)和終止
● 請(qǐng)求之前的開(kāi)始階段:
MINIT:模塊初始化階段。初始化一些擴(kuò)展、常量、類、資源等所有被php腳本用到的東西。(常駐內(nèi)存,可以被所有請(qǐng)求使用。)
PRINT:模塊激活階段。PHP會(huì)調(diào)用所有模塊的RINIT函數(shù),在這個(gè)階段各個(gè)模塊也可以執(zhí)行一些相關(guān)的操作,比如初始化本次請(qǐng)求使用到的變量。
● 請(qǐng)求之后的結(jié)束階段:
RSHUTDOWN:這個(gè)頁(yè)面請(qǐng)求執(zhí)行完畢,或者被用戶給die(exit)了, 這時(shí)PHP會(huì)啟動(dòng)回收程序,回收本次請(qǐng)求使用的資源。這次會(huì)執(zhí)行所有已加載擴(kuò)展的RSHUTDOWN(俗稱Request Shutdown)方法, 這時(shí)候擴(kuò)展可以利用內(nèi)核中的變量表等做的一些事情。因?yàn)镻HP一旦把所有擴(kuò)展的RSHUTDOWN方法執(zhí)行完,便會(huì)釋放掉這次請(qǐng)求使用過(guò)的所有資源,比如變量表的所有變量、所有在這次請(qǐng)求中申請(qǐng)的內(nèi)存等。
MSHUTDOWN:PHP執(zhí)行所有擴(kuò)展的MSHUTDOWN,釋放資源。
PHP的生命周期
1.單進(jìn)程SAPI生命周期(CLI/CGI)
2.多進(jìn)程SAPI生命周期(Apache2)
3.多線程的SAPI生命周期
4.Embed
Embed SAPI是一種比較特殊的sapi,容許你在C/C++語(yǔ)言中調(diào)用PHP/ZE提供的函數(shù)。
綜述
理一下PHP的生命周期,以及PHP整個(gè)執(zhí)行過(guò)程。還有怎么通過(guò)SAPI和PHP模塊溝通.
關(guān)于PHP的生命周期就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。