php源碼學習--生命週期_PHP教程

來源:互聯網
上載者:User

用了2年php了,只知其外,不知其裡,不得其意;學習中,要點記在這裡;

一切的開始:SAPI介面

  SAPI(server application programming interface)指的是php的具體應用編程介面,php指令碼要執行有很多種方式,比如:通過web伺服器、命令列,也可以嵌入其它程式中;通常我們使用apache或者nginx這類web伺服器來測試php指令碼,或者在命令列來執行指令碼,指令碼執行完後,web伺服器應答,瀏覽器顯示應答資訊,或者在終端上顯示內容.

    1)模組初始化階段(MINIT),在整個sapi生命週期內(例如apache啟動以後的整個生命週期內或命令列程式整個執行過程中),該過程只執行一次。

    2)模組啟用階段(RINIT),該過程發生在要求階段,例如通過url請求某個頁面,那麼在請求之前都會進行模組啟用;例如php註冊的一些擴充模組,則在MINIT階段會回調所有模的MINIT函數。模組在這個階段會進行一些初始化工作,例如註冊常量,定義模組使用的類等等。

  2.請求處理:請求到達之後php初始化執行指令碼的基本環境,例如建立一個執行環境,包括儲存php運行過程中變數名稱和值內容的符號表,以及當前的所有的函數以及類等資訊的符號表。然後php會調用所有模組的RINIT函數,在這個階段各個模組也可以執行一些相關的操作;

  3.請求結束:請求處理後就進入結束階段,一般指令碼執行到末尾通過調用exit()或die()函數,php都將進入結束階段;和開始階段對應,結束階段也分為兩個環節

    1)停用模組(RSHUTDOWN,對應RINIT)

    2)sapi生命週期結束(web伺服器退出或者命令列執行完畢退出)時關閉模組(MSHUTDOWN,對應MINIT)

  

單進程SAPI生命週期

  命令列模式的php屬於單進程的sapi模式,這類請求在處理一次後就關閉,整個處理流程只有以下幾個環節:開始-請求開始-請求關閉-結束 sapi介面實現就完成了其生命週期。單進程sapi生命週期

       

多進程SAPI生命週期

  除了命令列外,還有另外一種最多的處理php請求的莫過於web伺服器了,比如apache;apache作為web伺服器都會採用多進程模式,apache啟動後會fork出多個自進程,每個進程的記憶體空間獨立,每個子進程都會經過開始和結束環節,不過每個子進程的開始只在進程fork出來以後進行,在整個進程的生命週期裡可能會處理多個請求。只有在apache關閉或者進程被結束之後才會進入關閉階段,在這兩個階段之間會隨著每個請求進行 請求開始-請求關閉的環節。多進程sapi生命週期。

  

多線程SAPI生命週期

  多線程模式和多進程模式類似,不同的是在整個生命週期內會並行的重複著 請求開始-請求關閉環節

  

(轉載請註明出處:作者:jmol,微博:http://weibo.com/yospace 部落格園:http://www.cnblogs.com/yoainet/)

http://www.bkjia.com/PHPjc/741586.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/741586.htmlTechArticle用了2年php了,只知其外,不知其裡,不得其意;學習中,要點記在這裡; 一切的開始:SAPI介面 SAPI(server application programming interface)指的是...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.