成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP生命周期

sushi / 586人閱讀

摘要:結(jié)算處理順利運行完文件用戶主動致命回收程序釋放掉這次請求使用過的所有東西包括變量表的所有變量所有在這次請求中申請的內(nèi)存等等請確保文件可寫,否則會莫名崩潰讓我們看看是不是每次請求結(jié)束都會在這個文件里追加數(shù)據(jù)通知自己要的時候,便進入俗稱階段。

/*
 * PHP生命周期
 * PHP程序的啟動
 *              前置初始化(Apache或Nginx相關(guān)操作)
 *              模塊初始化       對應(yīng)擴展 php.dll
 *              請求初始化       $_SERVER等參數(shù)     I
 *      frame   執(zhí)行php腳本      code              I   I可以重復(fù)執(zhí)行(一般為框架內(nèi)容)
 *              請求處理完成     request            I
 *              關(guān)閉模塊        close
 *
 * Apache:
 *       A: php作為Apache的一個模塊的啟動和終止.
 *          這次php會初始化一些必要的數(shù)據(jù)(PHP_MINIT_FUNCTION),比如和Apache有關(guān)的,這些數(shù)據(jù)時常駐內(nèi)存的!終止與之對應(yīng).
 *       B: Apache分配一個頁面請求過來的時候,php會有一次啟動和終止
 *
 * PHP擴展周期:
 *      http://www.cunmou.com/phpbook/1.md
 *      Module init、Request init、Request Shutdown、Module shutdown 四個過程
 *      具體的執(zhí)行順序如下
 */

// 這四個宏都是在walu.c里完成最終實現(xiàn)的,而他們的則是在/main/php.h里被定義的(其實也是調(diào)用的別的宏)
// 這些代碼都在walu.c里面,不再.h里 php內(nèi)核代碼

//模塊初始化 前置初始化必要數(shù)據(jù) {擴展(系統(tǒng)模塊),(常量,類,資源)(自定義)}
int time_of_minit;//在MINIT中初始化,在每次頁面請求中輸出,看看是否變化
PHP_MINIT_FUNCTION(walu)
{
    time_of_minit=time(NULL);//我們在MINIT啟動中對他初始化
    return SUCCESS;
}

//(啟動)當(dāng)一個頁面請求到來時候,PHP會打了雞血似的馬上開辟一個新的環(huán)境,并重新掃描自己的各個擴展,
//挨個執(zhí)行它們各自的RINIT方法(俗稱Request Initialization),
//這時候一個擴展可能會初始化自己擴展使用的變量啊,初始化等會用戶端即PHP腳本中的變量啊之類的,
//內(nèi)核預(yù)置了PHP_RINIT_FUNCTION()這個宏函數(shù)來幫我們實現(xiàn)這個功能:
int time_of_rinit;//在RINIT里初始化,看看每次頁面請求的時候變不。
PHP_RINIT_FUNCTION(walu)
{
    time_of_rinit=time(NULL);
    return SUCCESS;
}

//(結(jié)算)處理(順利運行完文件,用戶主動exit/die,致命error)
//回收程序
//釋放掉這次請求使用過的所有東西:包括變量表的所有變量、所有在這次請求中申請的內(nèi)存等等
PHP_RSHUTDOWN_FUNCTION(walu)
{
    FILE *fp=fopen("/cnan/www/erzha/time_rshutdown.txt","a+");//請確保文件可寫,否則apache會莫名崩潰
    fprintf(fp,"%d
",time(NULL));//讓我們看看是不是每次請求結(jié)束都會在這個文件里追加數(shù)據(jù)
    fclose(fp);
    return SUCCESS;
}

//Apache通知PHP自己要Stop的時候,PHP便進入MSHUTDOWN(俗稱Module Shutdown)階段。
//這時候PHP便會給所有擴展下最后通喋,如果哪個擴展還有未了的心愿,就放在自己MSHUTDOWN方法里
//這可是最后的機會了,一旦PHP把擴展的MSHUTDOWN執(zhí)行完,便會進入自毀程序,
//這里一定要把自己擅自申請的內(nèi)存給釋放掉,否則就杯具了
PHP_MSHUTDOWN_FUNCTION(walu)
{
    FILE *fp=fopen("/cnan/www/erzha/time_mshutdown.txt","a+");//請確保文件可寫,否則apache會莫名崩潰
    fprintf(fp,"%d
",time(NULL));
    return SUCCESS;
}
 
//我們在頁面里輸出time_of_minit和time_of_rinit的值
PHP_FUNCTION(walu_test)
{
    php_printf("%d
",time_of_minit); php_printf("%d
",time_of_rinit); return; } # 線程安全與非線程安全 # web: http://www.cunmou.com/phpbook/1.4.md # TRSM (thread safe resource management) php抽象層,php多線程管理

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31010.html

相關(guān)文章

  • PHP生命周期

    摘要:的啟動和終止請求之前的開始階段模塊初始化階段。的生命周期單進程生命周期多進程生命周期多線程的生命周期是一種比較特殊的,容許你在語言中調(diào)用提供的函數(shù)。不太了解,明天看一下綜述理一下的生命周期,以及整個執(zhí)行過程。 PHP的架構(gòu)圖 showImg(https://segmentfault.com/img/remote/1460000013321599?w=514&h=525); SAPI S...

    sf190404 評論0 收藏0
  • PHP的工作原理和生命周期

    摘要:的工作原理和生命周期是一門適用于開發(fā)的動態(tài)語言,它可以說是一個用語言實現(xiàn)的包含大量組件的軟件框架。無論是哪種公眾模式,的工作原理都是一樣的,都是作為一種運行。 PHP的工作原理和生命周期 php是一門適用于web開發(fā)的動態(tài)語言,它可以說是一個用C語言實現(xiàn)的包含大量組件的軟件框架。那么,php是如何工作的呢?它的生命周期是怎么樣的呢? 表層分析 php是以請求/響應(yīng)為周期運行服務(wù)端應(yīng)用...

    happyhuangjinjin 評論0 收藏0
  • PHP生命周期

    摘要:的整個生命周期被劃分為以下幾個階段模塊初始化階段請求初始化階段執(zhí)行腳本階段請求關(guān)閉階段模塊關(guān)閉階段。 PHP的整個生命周期被劃分為以下幾個階段:模塊初始化階段(module startup)、請求初始化階段(request startup)、執(zhí)行腳本階段(executescript)、請求關(guān)閉階段(request shutdown)、模塊關(guān)閉階段(module shutdown)。根據(jù)...

    wh469012917 評論0 收藏0
  • Laravel 請求生命周期

    摘要:應(yīng)用實例所依賴的服務(wù)提供者可以在配置文件中的節(jié)點找到。完成所有服務(wù)提供者注冊到應(yīng)用實例后,應(yīng)用實例執(zhí)行啟動方法引導(dǎo)項目啟動?;騼?nèi)核接收到請求,加載服務(wù)提供者,同時,將請求分發(fā)給路由器執(zhí)行。 這是一篇翻譯文章,原文 Request Life Cycle of Laravel,譯文 Laravel 請求生命周期 首發(fā)于個人博客,轉(zhuǎn)載請注明出處。 當(dāng)需要使用一個框架、工具或者服務(wù)時,在使用前...

    junfeng777 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<