摘要:的啟動和終止請求之前的開始階段模塊初始化階段。的生命周期單進程生命周期多進程生命周期多線程的生命周期是一種比較特殊的,容許你在語言中調用提供的函數。不太了解,明天看一下綜述理一下的生命周期,以及整個執(zhí)行過程。
PHP的架構圖 SAPI
SAPI(Server Application Programming Interfac) is an application programming interface (API) provided by the web server to help other developers in extending the web server capabilities.
SAPI是一個用來幫助其他開發(fā)程序擴展web服務器功能的應用程序接口(api)。它將外部條件抽象, 為內部的PHP提供一套固定統(tǒng)一的接口, 使得PHP自身實現(xiàn)能夠不受外部環(huán)境影響,保持一定的獨立性。
PHP中常用的SAPI有cli(命令行模式,單進程)、php-fpm、CGI、Apache...
有點像策略模式,使用相同的接口,但是實現(xiàn)會略有不同。
請求之前的開始階段:
MINIT:模塊初始化階段。初始化一些擴展、常量、類、資源等所有被php腳本用到的東西。(常駐內存,可以被所有請求使用。)
PRINT:模塊激活階段。PHP會調用所有模塊的RINIT函數,在這個階段各個模塊也可以執(zhí)行一些相關的操作,比如初始化本次請求使用到的變量。
請求之后的結束階段:
RSHUTDOWN:這個頁面請求執(zhí)行完畢,或者被用戶給die(exit)了, 這時PHP會啟動回收程序,回收本次請求使用的資源。這次會執(zhí)行所有已加載擴展的RSHUTDOWN(俗稱Request Shutdown)方法, 這時候擴展可以利用內核中的變量表等做的一些事情。因為PHP一旦把所有擴展的RSHUTDOWN方法執(zhí)行完,便會釋放掉這次請求使用過的所有資源,比如變量表的所有變量、所有在這次請求中申請的內存等。
MSHUTDOWN:PHP執(zhí)行所有擴展的MSHUTDOWN,釋放資源。
PHP的生命周期1.單進程SAPI生命周期(CLI/CGI)
2.多進程SAPI生命周期(Apache2)
3.多線程的SAPI生命周期
4.Embed
Embed SAPI是一種比較特殊的sapi,容許你在C/C++語言中調用PHP/ZE提供的函數。(不太了解,明天看一下! http://www.laruence.com/2008/09/23/539.html)
綜述理一下PHP的生命周期,以及PHP整個執(zhí)行過程。還有怎么通過SAPI和PHP模塊溝通.
(圖片基本是從參考鏈接那邊拿過來的,站在前人的肩膀上。)
http://www.laruence.com/2008/08/12/180.html
https://en.wikipedia.org/wiki/Server_Application_Programming_Interface
http://www.cunmou.com/phpbook/1.1.md
https://foio.github.io/php-sapi/
http://www.php-internals.com/book/?p=chapt02/02-01-php-life-cycle-and-zend-engine
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/28252.html
摘要:的工作原理和生命周期是一門適用于開發(fā)的動態(tài)語言,它可以說是一個用語言實現(xiàn)的包含大量組件的軟件框架。無論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運行。 PHP的工作原理和生命周期 php是一門適用于web開發(fā)的動態(tài)語言,它可以說是一個用C語言實現(xiàn)的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請求/響應為周期運行服務端應用...
摘要:的整個生命周期被劃分為以下幾個階段模塊初始化階段請求初始化階段執(zhí)行腳本階段請求關閉階段模塊關閉階段。 PHP的整個生命周期被劃分為以下幾個階段:模塊初始化階段(module startup)、請求初始化階段(request startup)、執(zhí)行腳本階段(executescript)、請求關閉階段(request shutdown)、模塊關閉階段(module shutdown)。根據...
摘要:應用實例所依賴的服務提供者可以在配置文件中的節(jié)點找到。完成所有服務提供者注冊到應用實例后,應用實例執(zhí)行啟動方法引導項目啟動。或內核接收到請求,加載服務提供者,同時,將請求分發(fā)給路由器執(zhí)行。 這是一篇翻譯文章,原文 Request Life Cycle of Laravel,譯文 Laravel 請求生命周期 首發(fā)于個人博客,轉載請注明出處。 當需要使用一個框架、工具或者服務時,在使用前...
閱讀 2025·2019-08-30 15:52
閱讀 2987·2019-08-29 16:09
閱讀 1333·2019-08-28 18:30
閱讀 2459·2019-08-26 12:24
閱讀 1107·2019-08-26 12:12
閱讀 2281·2019-08-26 10:45
閱讀 578·2019-08-23 17:52
閱讀 837·2019-08-23 16:03