PHP底層淺析

PHP底層淺析

1.PHP語言簡介

  PHP(Hypertext Preprocessor)是開源腳本語言,具備C、JAVA、Perl等語言的特性。目前PHP主要用做WEB開發。因其引入了中間解釋層(Zend引擎),因此PHP是一門動態語言,正由於他是一門基於解釋的嵌入式腳本語言,因此瞭解他的底層設計以及運做機制有助於咱們程序調優和自我定製。
編程

2.PHP底層基本特性

  • PHP語義上屬於弱類型語言,一個變量的聲明階段並不須要指定其基本類型,變量生命期內,Zend引擎會根據須要對變量進行隱式或顯式地類型變換;
  • 早期PHP語言基於多進程模式,即單獨的請求綁定惟一的進程,這樣作可以有效的提升程序運行時的穩定性,但在處理異步請求類的業務時便有了侷限性,正由於這樣,隨着發展,如今PHP語言已經很好的支持多線程模式;
  • PHP語法約束性不強,一樣的邏輯有多樣的實現方式;
  • PHP依託Zend引擎+ZendExtensions擴展+SAPI(隔絕WEB Server和PHP)隔絕層實現了標準架構設計的基本要求。

3.PHP架構體系

  3.1PHP架構體系圖

    :

 

 3.2PHP架構體系元素解釋

  1. Zend引擎:由C語言開發,主要功能包括系統的內存分配與管理封裝了可供PHP調用的API函數實現PHP可直接使用的數據結構PHP源代碼解析等。它是PHP架構體系中的核心部分,能夠說沒有Zend就沒有PHP語言自己。
  2. Extensions擴展:PHP架構體系的組件擴展部分,依託於Zend Extension API向更高層提供PHP自有的或用戶自定義的組件服務。部分PHP內置函數及PHP標準庫都是經過Extensions實現的。着力這一層,咱們可以在必定程度上對應用進行性能調優及自定製。
  3. SAPI:即Server Application Programming Interface(服務端應用編程接口)。SAPI經過提供一系列的函數,使得上層的Application可以同PHP進行數據通訊,同時因爲SAPI層的引入,PHP架構體系將上層Application和PHP自己進行了隔離,這樣他們能夠根據本身的角色進行各自重要的發展。這一設計理念就是設計模式中常講的解耦
  4. Application:咱們開發的PHP應用程序。

 3.3PHP架構體系與人體模型的映射

   咱們能夠將PHP體系架構映射到一個今本的人體模型上,PHP自己就比如是一我的體模型的總體,Zend引擎就是這我的體模型的大腦,而Extensions擴展就是人體模型的四肢,SAPI就是一套人體動做的集合,那麼一次PHP程序的執行就比如一我的體模型在大腦的控制下經過四肢的相互配合作出各類各樣的動做。設計模式

相關文章
相關標籤/搜索