您好,登錄后才能下訂單哦!
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生命周期的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。