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

資訊專欄INFORMATION COLUMN

PHP源碼研究

Developer / 1453人閱讀

摘要:最近閑來無事,所以對(duì)這門語言進(jìn)行更深一層的了解,對(duì)源碼進(jìn)行一番研究,是如何執(zhí)行我們寫的腳本的。引擎是語言實(shí)現(xiàn)的最為重要的部分,是最基礎(chǔ)最核心的部分,它的源碼在目錄下,代碼從編譯到執(zhí)行都是由完成的,后面章節(jié)絕大部分的源碼分析都是針對(duì)的。

最近閑來無事,所以對(duì)PHP這門語言進(jìn)行更深一層的了解,對(duì)源碼進(jìn)行一番研究,是如何執(zhí)行我們寫的PHP腳本的。

1.1.3 PHP的相關(guān)組成 1.1.3.1 SAPI

PHP本身可以理解為是一個(gè)庫函數(shù),提供語言的編譯與執(zhí)行服務(wù),它有標(biāo)準(zhǔn)的輸入、輸出,而SAPI是PHP的接入層,它接收用戶的請(qǐng)求,然后調(diào)用PHP內(nèi)核提供的一些接口完成PHP腳本的執(zhí)行,所以嚴(yán)格意義上講SAPI并不算PHP內(nèi)核的一部分。

PHP的角色就好比是leveldb,它實(shí)現(xiàn)了基本存儲(chǔ)功能,但是沒有網(wǎng)絡(luò)處理模塊,而我們基于leveldb實(shí)現(xiàn)的完整存儲(chǔ)服務(wù)就好比是SAPI。

PHP中常用的SAPI有cli、php-fpm,cli是命令行下執(zhí)行PHP腳本的實(shí)現(xiàn):bin/php script.php,它是單進(jìn)程的,處理模型比較簡(jiǎn)單,而php-fpm相對(duì)比較復(fù)雜,它實(shí)現(xiàn)了網(wǎng)絡(luò)處理模塊,用于與web服務(wù)器交互。

1.1.3.2 Zend引擎

Zend是PHP語言實(shí)現(xiàn)的最為重要的部分,是PHP最基礎(chǔ)、最核心的部分,它的源碼在/Zend目錄下,PHP代碼從編譯到執(zhí)行都是由Zend完成的,后面章節(jié)絕大部分的源碼分析都是針對(duì)Zend的。Zend整體由兩個(gè)部分組成:

編譯器: 負(fù)責(zé)將PHP代碼編譯為抽象語法樹,然后進(jìn)一步編譯為可執(zhí)行的opcodes,這個(gè)過程相當(dāng)于GCC的工作,編譯器是一個(gè)語言實(shí)現(xiàn)的基礎(chǔ)
執(zhí)行器: 負(fù)責(zé)執(zhí)行編譯器輸出的opcodes,也就是執(zhí)行PHP腳本中編寫的代碼邏輯

2.相關(guān)文章

[[譯] 理解 PHP 內(nèi)部函數(shù)的定義(給PHP開發(fā)者的PHP源碼-第二部分)][1]

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

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

相關(guān)文章

  • 【總結(jié)】我們2018年的關(guān)鍵詞-堅(jiān)持學(xué)習(xí)

    摘要:因?yàn)樯婕皹I(yè)務(wù)敏感話題,本文只記錄我們學(xué)習(xí)的歷程。我由衷的感謝團(tuán)隊(duì)的小伙伴們,感謝你們的堅(jiān)韌不拔,感謝你們的持續(xù)成長。這個(gè)變化只是在每天的堅(jiān)持和刻意練習(xí)中發(fā)生的,是那么的神奇。 因?yàn)樯婕皹I(yè)務(wù)敏感話題,本文只記錄我們學(xué)習(xí)的歷程。 關(guān)于堅(jiān)持 ??從2016年起,我們團(tuán)隊(duì)堅(jiān)持每天早晨8:50-10:30的100分鐘早晨討論,到現(xiàn)在已經(jīng)兩年了,期間沒有中斷過。我由衷的感謝團(tuán)隊(duì)的小伙伴們,感謝你們...

    Imfan 評(píng)論0 收藏0
  • 【總結(jié)】我們2018年的關(guān)鍵詞-堅(jiān)持學(xué)習(xí)

    摘要:因?yàn)樯婕皹I(yè)務(wù)敏感話題,本文只記錄我們學(xué)習(xí)的歷程。我由衷的感謝團(tuán)隊(duì)的小伙伴們,感謝你們的堅(jiān)韌不拔,感謝你們的持續(xù)成長。這個(gè)變化只是在每天的堅(jiān)持和刻意練習(xí)中發(fā)生的,是那么的神奇。 因?yàn)樯婕皹I(yè)務(wù)敏感話題,本文只記錄我們學(xué)習(xí)的歷程。 關(guān)于堅(jiān)持 ??從2016年起,我們團(tuán)隊(duì)堅(jiān)持每天早晨8:50-10:30的100分鐘早晨討論,到現(xiàn)在已經(jīng)兩年了,期間沒有中斷過。我由衷的感謝團(tuán)隊(duì)的小伙伴們,感謝你們...

    xingpingz 評(píng)論0 收藏0
  • Laravel Service Provider 開發(fā)時(shí)設(shè)置延遲加載時(shí)遇到的問題

    摘要:因?qū)嶋H項(xiàng)目需求,近日在開發(fā)包的時(shí)候,發(fā)現(xiàn)設(shè)置屬性設(shè)置為時(shí),會(huì)導(dǎo)致在方法中注冊(cè)的無效。研究源碼在中注冊(cè)無效,但是在其他中注冊(cè)有效,說明是其他問題。所以切記如果準(zhǔn)備采用延遲加載時(shí),嚴(yán)禁進(jìn)行注冊(cè)等系列操作。嚴(yán)禁在延遲加載的注冊(cè)和。 因?qū)嶋H項(xiàng)目需求,近日在開發(fā) laravel-database-logger 包的時(shí)候,發(fā)現(xiàn)設(shè)置 ServiceProvider defer 屬性設(shè)置為 true ...

    Zhuxy 評(píng)論0 收藏0
  • 【Swoole源碼研究】深入理解Swoole協(xié)程實(shí)現(xiàn)

    摘要:此時(shí)的協(xié)程實(shí)現(xiàn)無法完美的支持語法,其根本原因在于沒有保存棧信息。這是因?yàn)檎{(diào)用函數(shù)時(shí),底層指令已經(jīng)將入棧了。協(xié)程創(chuàng)建時(shí),底層通過函數(shù)實(shí)現(xiàn)了棧的創(chuàng)建創(chuàng)建并初始化棧為結(jié)構(gòu)分配空間創(chuàng)建新的執(zhí)行數(shù)據(jù)結(jié)構(gòu)從代碼中可以看到結(jié)構(gòu)是直接存儲(chǔ)在棧的底部。 作者:李樂??本文基于Swoole-4.3.2和PHP-7.1.0版本 Swoole協(xié)程簡(jiǎn)介 ??Swoole4為PHP語言提供了強(qiáng)大的CSP協(xié)程編程模...

    darkerXi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<