您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關PHP的生命周期,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
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提供的函數。
綜述
理一下PHP的生命周期,以及PHP整個執行過程。還有怎么通過SAPI和PHP模塊溝通.
關于PHP的生命周期就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。