
文章插圖
推薦操作系統(tǒng):windows7系統(tǒng)、php5.6、DELL G3電腦
1、執(zhí)行原理
PHP實(shí)現(xiàn)了典型的動(dòng)態(tài)語(yǔ)言執(zhí)行過(guò)程:取得代碼后,在語(yǔ)法分析、語(yǔ)法分析等階段,將源程序翻譯成指令(opcodes),ZEND虛擬機(jī)按順序執(zhí)行這些指令完成操作 。PHP本身是通過(guò)C過(guò)C實(shí)現(xiàn)的,所以最終調(diào)用的也是C的函數(shù),實(shí)際上可以把PHP視為C開(kāi)發(fā)的軟件 。
2、框架分析
(1)Zend引擎:Zend整體是純c實(shí)現(xiàn)的,是PHP的核心部分,將PHP代碼翻譯(語(yǔ)法、語(yǔ)法分析等一系列編譯過(guò)程)實(shí)現(xiàn)opcode的處理,實(shí)現(xiàn)相應(yīng)的處理方法,實(shí)現(xiàn)基本的數(shù)據(jù)結(jié)構(gòu)(hashtable、oo)、內(nèi)存分配和管理、相應(yīng)的api方法
(2)Extensions:圍繞Zend引擎,extensions以組件方式提供各種基礎(chǔ)服務(wù),我們常見(jiàn)的各種內(nèi)置功能(如array系列)、標(biāo)準(zhǔn)庫(kù)等通過(guò)extension實(shí)現(xiàn),用戶(hù)也可以根據(jù)需要實(shí)現(xiàn)自己的extension
(3)Sapi:Sapi的全名是ServerApplicationProgrammingInterface,即服務(wù)終端的應(yīng)用程序設(shè)計(jì)界面,Sapi通過(guò)一系列掛鉤功能,PHP可以與周邊的互動(dòng)數(shù)據(jù),這是PHP非常優(yōu)雅成功的設(shè)計(jì)
(4)上層應(yīng)用:這是我們平時(shí)制作的PHP程序,通過(guò)不同的sapi方式獲得網(wǎng)絡(luò)應(yīng)用程序,在命令下以腳本方式運(yùn)行等各種應(yīng)用程序模式 。
以上就是php框架底層原理的介紹,我們通過(guò)本篇的學(xué)習(xí),可以對(duì)其中框架執(zhí)行原理有所認(rèn)知,在掌握了其基本的框架組成后,重點(diǎn)了解框架底層中Zend的概念 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- php解析json數(shù)組 php解析json數(shù)據(jù)
- php數(shù)據(jù)類(lèi)型有哪幾種 php常見(jiàn)變量類(lèi)型有哪些?
- php數(shù)組添加元素的方法 php數(shù)組添加元素
- php哈希沖突是什么?
- php數(shù)組賦值方式有幾種 php數(shù)組賦值方式
- php中QPM框架是什么?
- php zend框架 php Zend引擎如何執(zhí)行代碼
- php判斷數(shù)組是否為空 php判斷數(shù)組元素不為空格的方法
- php安裝grpc擴(kuò)展的方法
- php使用header禁止緩存的方法
