摘要:的整個(gè)生命周期被劃分為以下幾個(gè)階段模塊初始化階段請(qǐng)求初始化階段執(zhí)行腳本階段請(qǐng)求關(guān)閉階段模塊關(guān)閉階段。
PHP的整個(gè)生命周期被劃分為以下幾個(gè)階段:模塊初始化階段(module startup)、請(qǐng)求初始化階段(request startup)、執(zhí)行腳本階段(executescript)、請(qǐng)求關(guān)閉階段(request shutdown)、模塊關(guān)閉階段(module shutdown)。根據(jù)不同SAPI的實(shí)現(xiàn),各階段的執(zhí)行情況會(huì)有一些差異,比如命令行模式下,每次執(zhí)行一個(gè)腳本都會(huì)完整地經(jīng)歷這些階段,而FastCgi模式下則在啟動(dòng)時(shí)執(zhí)行一次模塊初始化,然后各個(gè)請(qǐng)求只經(jīng)歷請(qǐng)求初始化、執(zhí)行請(qǐng)求腳本、請(qǐng)求關(guān)閉幾個(gè)階段,在SAPI關(guān)閉時(shí)經(jīng)歷模塊關(guān)閉階段。
模塊初始化階段
激活SAPI
啟動(dòng)PHP輸出
初始化垃圾回收器
啟動(dòng)Zend引擎
啟動(dòng)內(nèi)存池
設(shè)置一些util函數(shù)句柄
設(shè)置Zend虛擬機(jī)編譯、執(zhí)行器的函數(shù)句柄
分配函數(shù)符號(hào)表、類符號(hào)表、常量符號(hào)表
注冊(cè)Zend核心擴(kuò)展
注冊(cè)Zend定義的標(biāo)準(zhǔn)常量
注冊(cè)$GLOBALS超全局變量的獲取handler
分配php.ini配置的存儲(chǔ)符號(hào)表
注冊(cè)PHP定義的常量
解析php.ini
映射PHP、Zend核心的php.ini配置
注冊(cè)用于獲取 $_GET、$_POST、$_COOKIE、$_SERVER、$_ENV、$_REQUEST、$_FILES 變量的 handler
注冊(cè)靜態(tài)編譯的擴(kuò)展
注冊(cè)動(dòng)態(tài)加載的擴(kuò)展
回調(diào)各擴(kuò)展定義的module starup鉤子函數(shù)
注冊(cè)php.ini中禁用的函數(shù)、類
請(qǐng)求初始化階段
激活輸出
激活Zend引擎
重置垃圾回收器
初始化編譯器
初始化執(zhí)行器
初始化詞法掃描器
激活SAPI
回調(diào)各擴(kuò)展定義的request startup鉤子函數(shù)
執(zhí)行腳本階段
編譯階段
PHP 源代碼
抽象語(yǔ)法樹
opline指令
執(zhí)行階段
請(qǐng)求關(guān)閉階段
flush輸出內(nèi)容
發(fā)送HTTP應(yīng)答header頭
清理全局變量
關(guān)閉編譯器
關(guān)閉執(zhí)行器
模塊關(guān)閉階段
進(jìn)行資源的清理
PHP各模塊的關(guān)閉操作
回調(diào)各擴(kuò)展的module shutdown鉤子函數(shù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29351.html
摘要:的工作原理和生命周期是一門適用于開發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。無(wú)論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運(yùn)行。 PHP的工作原理和生命周期 php是一門適用于web開發(fā)的動(dòng)態(tài)語(yǔ)言,它可以說(shuō)是一個(gè)用C語(yǔ)言實(shí)現(xiàn)的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請(qǐng)求/響應(yīng)為周期運(yùn)行服務(wù)端應(yīng)用...
摘要:結(jié)算處理順利運(yùn)行完文件用戶主動(dòng)致命回收程序釋放掉這次請(qǐng)求使用過(guò)的所有東西包括變量表的所有變量所有在這次請(qǐng)求中申請(qǐng)的內(nèi)存等等請(qǐng)確保文件可寫,否則會(huì)莫名崩潰讓我們看看是不是每次請(qǐng)求結(jié)束都會(huì)在這個(gè)文件里追加數(shù)據(jù)通知自己要的時(shí)候,便進(jìn)入俗稱階段。 /* * PHP生命周期 * PHP程序的啟動(dòng) * 前置初始化(Apache或Nginx相關(guān)操作) * ...
摘要:應(yīng)用實(shí)例所依賴的服務(wù)提供者可以在配置文件中的節(jié)點(diǎn)找到。完成所有服務(wù)提供者注冊(cè)到應(yīng)用實(shí)例后,應(yīng)用實(shí)例執(zhí)行啟動(dòng)方法引導(dǎo)項(xiàng)目啟動(dòng)。或內(nèi)核接收到請(qǐng)求,加載服務(wù)提供者,同時(shí),將請(qǐng)求分發(fā)給路由器執(zhí)行。 這是一篇翻譯文章,原文 Request Life Cycle of Laravel,譯文 Laravel 請(qǐng)求生命周期 首發(fā)于個(gè)人博客,轉(zhuǎn)載請(qǐng)注明出處。 當(dāng)需要使用一個(gè)框架、工具或者服務(wù)時(shí),在使用前...
閱讀 3027·2023-04-26 00:32
閱讀 511·2019-08-30 15:52
閱讀 2118·2019-08-30 15:52
閱讀 3363·2019-08-30 15:44
閱讀 3292·2019-08-30 14:09
閱讀 1425·2019-08-29 15:15
閱讀 3404·2019-08-28 18:12
閱讀 1088·2019-08-26 13:55