PHP的整個生命周期被劃分為以下幾個階段:模塊初始化階段、請求初始化階段、執行腳本階段、請求關閉階段、模塊關閉階段,php的cli模式下每次執行一個腳本都會完整的經歷這些階段,而FastCgi模式下則只會在啟動時執行一次模塊初始化階段,然后接下來的各個請求只會執行請求初始化階段、腳本執行階段,請求關閉階段,
- MINIT(module init 模塊初始化)
- 啟動 PHP 輸出、初始化垃圾回收器
- 啟動 Zend 引擎、注冊 Zend 核心擴展、Zend 標準常量
- 決議 PHP.ini,映射 PHP.ini 相關配置
- 注冊靜態、動態編譯的擴展
- 回呼各擴展定義的 module starup 鉤子函式
用一句話來說,就是初始化類、常量、擴展等 PHP 所用到的資源
- RINIT(request init 請求初始化)
PHP 初始化腳本執行的基本環境,SAPI 將控制權交給 PHP,激活 Zend 引擎,初始化執行器
- PHP 腳本執行
Zend 引擎接管控制權,將 PHP 腳本編譯成 Opcodes,并順序執行
- RSHUTDOWN (request shutdown 請求結束)
PHP 腳本執行完之后進入請求結束階段,PHP 啟動清理程式,這個階段,將 flush 輸出內容,發送 http 回應內容,關閉 PHP 執行器
- MSHUTDOWN(module shutdown 模塊關閉)
這個階段主要是進行資源的清理、php 各模塊的關閉操作,同時,將回呼各擴展的 module shutdown 鉤子函式,這是發生在所有請求都已經結束之后,例如關閉fpm的操作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/63418.html
標籤:PHP
