|
導(dǎo)讀網(wǎng)頁的本質(zhì)就是超級(jí)文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級(jí)文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立... 網(wǎng)頁的本質(zhì)就是超級(jí)文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級(jí)文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。 本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php生命周期的詳解(圖),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
單進(jìn)程SAPI生命周期
啟動(dòng) 在調(diào)用每個(gè)模塊的模塊初始化前,會(huì)有一個(gè)初始化的過程,它包括:
這里的初始化操作包括內(nèi)存管理初始化、 全局使用的函數(shù)指針初始化(如前面所說的zend_printf等),對(duì)PHP源文件進(jìn)行詞法分析、語法分析、 中間代碼執(zhí)行的函數(shù)指針的賦值,初始化若干HashTable(比如函數(shù)表,常量表等等),為ini文件解析做準(zhǔn)備, 為PHP源文件解析做準(zhǔn)備,注冊(cè)內(nèi)置函數(shù)(如strlen、define等),注冊(cè)標(biāo)準(zhǔn)常量(如E_ALL、TRUE、NULL等)、注冊(cè)GLOBALS全局變量等。
將這些模塊注冊(cè)到已注冊(cè)模塊列表(module_registry),如果注冊(cè)的模塊已經(jīng)注冊(cè)過了,PHP會(huì)報(bào)Module XXX already loaded的錯(cuò)誤。 1. 將每個(gè)模塊中包含的函數(shù)注冊(cè)到函數(shù)表( CG(function_table) ),如果函數(shù)無法添加,則會(huì)報(bào) Unable to register functions, unable to load。 在內(nèi)置模塊和附加模塊后,接下來是注冊(cè)通過共享對(duì)象(比如DLL)和php.ini文件靈活配置的擴(kuò)展。 在所有的模塊都注冊(cè)后,PHP會(huì)馬上執(zhí)行模塊初始化操作(zend_startup_modules)。 它的整個(gè)過程就是依次遍歷每個(gè)模塊,調(diào)用每個(gè)模塊的模塊初始化函數(shù), 也就是在本小節(jié)前面所說的用宏P(guān)HP_MINIT_FUNCTION包含的內(nèi)容。 在處理了文件相關(guān)的內(nèi)容,PHP會(huì)調(diào)用php_request_startup做請(qǐng)求初始化操作。 請(qǐng)求初始化操作,除了圖中顯示的調(diào)用每個(gè)模塊的請(qǐng)求初始化函數(shù)外,還做了較多的其它工作,其主要內(nèi)容如下:
這里的環(huán)境初始化是指在用戶空間中需要用到的一些環(huán)境變量初始化,這里的環(huán)境包括服務(wù)器環(huán)境、請(qǐng)求數(shù)據(jù)環(huán)境等。 實(shí)際到我們用到的變量,就是POST、_GET、COOKIE、_SERVER、ENV、_FILES。
運(yùn)行 DEACTIVATION PHP關(guān)閉請(qǐng)求的過程是一個(gè)若干個(gè)關(guān)閉操作的集合,這個(gè)集合存在于php_request_shutdown函數(shù)中。 這個(gè)集合包括如下內(nèi)容: 調(diào)用所有通過register_shutdown_function()注冊(cè)的函數(shù)。這些在關(guān)閉時(shí)調(diào)用的函數(shù)是在用戶空間添加進(jìn)來的。 一個(gè)簡(jiǎn)單的例子,我們可以在腳本出錯(cuò)時(shí)調(diào)用一個(gè)統(tǒng)一的函數(shù),給用戶一個(gè)友好一些的頁面,這個(gè)有點(diǎn)類似于網(wǎng)頁中的404頁面。 結(jié)束 最終到了要收尾的地方了。 flush 關(guān)閉Zend引擎 以上就是php生命周期的詳解(圖)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!