首頁 >後端開發 >php教程 >PHP的生命週期詳解

PHP的生命週期詳解

小云云
小云云原創
2018-02-23 11:21:041451瀏覽

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的生命週期詳解

PHP的啟動與終止

  • 要求之前的開始階段:

    • MINIT:模組初始化階段。初始化一些擴充功能、常數、類別、資源等所有被php腳本用到的東西。 (常駐記憶體,可以被所有請求使用。)

    • PRINT:模組啟動階段。 PHP會呼叫​​所有模組的RINIT函數,在這個階段各個模組也可以執行一些相關的操作,例如初始化本次請求使用到的變數。

  • 請求之後的結束階段:

    • #RSHUTDOWN:這個頁面要求執行完畢,或是被使用者給die( exit)了, 這時PHP會啟動回收程序,回收本次請求使用的資源。這次會執行所有已載入擴充的RSHUTDOWN(俗稱Request Shutdown)方法, 這時候擴充可以利用核心中的變數表等做的一些事情。因為PHP一旦把所有擴展的RSHUTDOWN方法執行完,便會釋放掉這次請求使用過的所有資源,例如變數表的所有變數、所有在這次請求中申請的記憶體等。

    • MSHUTDOWN:PHP執行所有擴充的MSHUTDOWN,釋放資源。

PHP的生命週期

1.單一進程SAPI生命週期(CLI/CGI)

PHP的生命週期詳解

2.多重流程SAPI生命週期(Apache2)

PHP的生命週期詳解

#3.多執行緒的SAPI生命週期

PHP的生命週期詳解

4.Embed

Embed SAPI是比較特殊的sapi,容許你在C/C++語言中呼叫PHP/ZE提供的函數。 (不太了解,明天看一下!http://www.laruence.com/2008/09/23/539.html)

綜述

# 理一下PHP的生命週期,以及PHP整個執行過程。還有怎麼透過SAPI和PHP模組溝通.
(圖片基本上是從參考連結那邊拿過來的,站在前人的肩膀上。)

#相關推薦:

#PHP原始碼分析-PHP的生命週期_PHP教學

php 變數生命週期:PHP原始碼分析-PHP的生命週期

PHP的生命週期 opcode快取什麼是php的字典掃描?該如何處理

以上是PHP的生命週期詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn