mod_php5.so。流程:請求 → SAPI → PHP 核心 → ZE 編譯/執行 → (呼叫擴充) → 結果回核心 → SAPI → 瀏覽器。
php.ini 啟用的擴充,呼叫各自 MINIT 方法,註冊函數、類別、常數,進入可用狀態。PHP_MINIT_FUNCTION(extension_name) {
// 註冊函數、類別、常數等
}
RINIT,如 Session 模組初始化 $_SESSION 並讀取資料。PHP_RINIT_FUNCTION(extension_name) {
// 初始化會話變數、預填變數、重新定義全域變數
}
RSHUTDOWN,清理符號表(對每個變數 unset),釋放請求級記憶體。PHP_RSHUTDOWN_FUNCTION(extension_name) {
// 記憶體管理、unset 所有請求變數
}
MSHUTDOWN,釋放持久資源、句柄。PHP_MSHUTDOWN_FUNCTION(extension_name) {
// 釋放持久記憶體、關閉句柄
}
只有「無請求」時才會執行 MINIT/MSHUTDOWN。理解此生命週期,才能編寫高效擴充、排查記憶體洩漏、優化啟動速度。