摘要:的啟動(dòng)和終止請(qǐng)求之前的開(kāi)始階段模塊初始化階段。的生命周期單進(jìn)程生命周期多進(jìn)程生命周期多線程的生命周期是一種比較特殊的,容許你在語(yǔ)言中調(diào)用提供的函數(shù)。不太了解,明天看一下綜述理一下的生命周期,以及整個(gè)執(zhí)行過(guò)程。
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ì)略有不同。
請(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ù)。(不太了解,明天看一下! http://www.laruence.com/2008/09/23/539.html)
綜述理一下PHP的生命周期,以及PHP整個(gè)執(zhí)行過(guò)程。還有怎么通過(guò)SAPI和PHP模塊溝通.
(圖片基本是從參考鏈接那邊拿過(guò)來(lái)的,站在前人的肩膀上。)
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
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28252.html
摘要:的工作原理和生命周期是一門適用于開(kāi)發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。無(wú)論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運(yùn)行。 PHP的工作原理和生命周期 php是一門適用于web開(kāi)發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用C語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請(qǐng)求/響應(yīng)為周期運(yùn)行服務(wù)端應(yīng)用...
摘要:結(jié)算處理順利運(yùn)行完文件用戶主動(dòng)致命回收程序釋放掉這次請(qǐng)求使用過(guò)的所有東西包括變量表的所有變量所有在這次請(qǐng)求中申請(qǐng)的內(nèi)存等等請(qǐng)確保文件可寫,否則會(huì)莫名崩潰讓我們看看是不是每次請(qǐng)求結(jié)束都會(huì)在這個(gè)文件里追加數(shù)據(jù)通知自己要的時(shí)候,便進(jìn)入俗稱階段。 /* * PHP生命周期 * PHP程序的啟動(dòng) * 前置初始化(Apache或Nginx相關(guān)操作) * ...
摘要:的整個(gè)生命周期被劃分為以下幾個(gè)階段模塊初始化階段請(qǐng)求初始化階段執(zhí)行腳本階段請(qǐng)求關(guān)閉階段模塊關(guān)閉階段。 PHP的整個(gè)生命周期被劃分為以下幾個(gè)階段:模塊初始化階段(module startup)、請(qǐng)求初始化階段(request startup)、執(zhí)行腳本階段(executescript)、請(qǐng)求關(guān)閉階段(request shutdown)、模塊關(guān)閉階段(module shutdown)。根據(jù)...
摘要:應(yīng)用實(shí)例所依賴的服務(wù)提供者可以在配置文件中的節(jié)點(diǎn)找到。完成所有服務(wù)提供者注冊(cè)到應(yīng)用實(shí)例后,應(yīng)用實(shí)例執(zhí)行啟動(dòng)方法引導(dǎo)項(xiàng)目啟動(dòng)。或內(nèi)核接收到請(qǐng)求,加載服務(wù)提供者,同時(shí),將請(qǐng)求分發(fā)給路由器執(zhí)行。 這是一篇翻譯文章,原文 Request Life Cycle of Laravel,譯文 Laravel 請(qǐng)求生命周期 首發(fā)于個(gè)人博客,轉(zhuǎn)載請(qǐng)注明出處。 當(dāng)需要使用一個(gè)框架、工具或者服務(wù)時(shí),在使用前...
閱讀 2021·2019-08-30 15:52
閱讀 2975·2019-08-29 16:09
閱讀 1323·2019-08-28 18:30
閱讀 2453·2019-08-26 12:24
閱讀 1090·2019-08-26 12:12
閱讀 2273·2019-08-26 10:45
閱讀 565·2019-08-23 17:52
閱讀 810·2019-08-23 16:03