跟廠長學PHP7核心(一) 發展史

2021-08-27 08:53:47 字數 1700 閱讀 2919

2023年,一位名叫rasmus lerdorf的兄台為了在網上展示自己的履歷和網頁流量的統計,用perl開發了一套指令碼,後來因與日俱增的需求無法得到滿足,lerdorf便使用c語言進行了重寫,重寫後的程式支援資料庫的訪問,以及web應用程式的簡單開發,備受好評,隨後便以personal home page tools為名發布了第乙個版本。

為了php的改進和快速發展,lerdorf在2023年6月8日將其開源,於是php2.0問世,並被命名為php/fi。隨後,在經歷了數次beta版本的發布,於2023年推出了官方正式版本。而此時,全世界已有50000個網域名稱安裝了php,佔所有網域名稱的1%。

其實在php/fi官方版本發布之前,兩位來自以色列的工程師zeev suraski和andi gutmans就已經著手於php解析器的重寫,為php3.0打下了基礎,所以php/fi發布之後,便開放了php3.0的測試,並於2023年6月正式發布。而此時的php被正式更名為php:hypertext preprocessor。

php3.0有強大的擴充套件性,除了可以給使用者提供資料庫、協議和api的基礎結構外,還吸引了大量的開發人員加入,並提交新的模組,這也是php3.0獲得巨大成功的關鍵。

php3.0正式發布後,zeev suraski和andi gutmans開始改寫php的核心,命名為zend engine(是zeev和andi的縮寫),也就是我們熟知的zend引擎。該引擎在2023年被引入php4.0,並在2023年正式發布。php4.0不僅擁有更好的效能,還支援了session、輸出緩衝等功能,吸引了大批開發者。此時安裝php的**已經達到了數百萬,佔據所有**的20%。

2023年7月13日,基於zend engine 2.0的php5公開發布,全面引入了物件導向機制,並保留了向下相容性。隨後5.3到5.6版本的發布,相繼增加了命名空間、閉包、traits、短陣列等特性,使php語法越來越靈活,直到目前,仍然有許多**使用php5.6。

我們都知道,php並沒有發布6.0,原因是曾有一群人建立了php6的專案,主要的目的是為php引擎增加unicode支援,當時開發者們同時維護5和6的開發,慢慢的大家發現新功能都等著提交給6,而6因為開發速度慢導致很多新特性沒法提交,狀態很不理想,再後來6就沒人開發了。最終經過php社群核心貢獻者投票,超過7成的人同意最新的php版號將是php7而非php6,故php直接跳過了6.0版本。

2023年,php7正式發布,zend引擎被再次重寫,並以zend engine 3.0 的身份亮相,使得php語言的效能得到大幅度提公升,大量測試顯示php7比php5.6在各種開源專案中有60%到200%的效能提公升。

在這裡值得一提的是,php7的核心開發人員,php5.4、php5.5的主要開發人員「惠新宸」,是php開發組核心成員,也是中國最具影響力的php技術專家,人送外號「鳥哥」。

跟廠長學PHP核心7(六) 變數之zval

記得網上流傳甚廣的段子 php是世界上最好的語言 暫且不去討論是否言過其實,但至少php確實有獨特優勢的,比如它的弱型別,即只需要 符號即可宣告變數,使得php入手門檻極低,成為大家所青睞的web服務端語言。那麼它的變數是如何實現的呢?我們今天就來學習一下php的基本變數。php的變數儲存在zval...

跟廠長學PHP核心7(六) 變數之zval

記得網上流傳甚廣的段子 php是世界上最好的語言 暫且不去討論是否言過其實,但至少php確實有獨特優勢的,比如它的弱型別,即只需要 符號即可宣告變數,使得php入手門檻極低,成為大家所青睞的web服務端語言。那麼它的變數是如何實現的呢?我們今天就來學習一下php的基本變數。php的變數儲存在zval...

跟廠長學PHP核心7(六) 變數之zval

記得網上流傳甚廣的段子 php是世界上最好的語言 暫且不去討論是否言過其實,但至少php確實有獨特優勢的,比如它的弱型別,即只需要 符號即可宣告變數,使得php入手門檻極低,成為大家所青睞的web服務端語言。那麼它的變數是如何實現的呢?我們今天就來學習一下php的基本變數。php的變數儲存在zval...