- 相關(guān)推薦
PHP語言發(fā)展歷程
PHP 繼承自一個老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 創(chuàng)建,最初只是一套簡單的 Perl 腳本,用來跟蹤訪問他主頁的人們的信息。下面是小編幫大家整理的PHP語言發(fā)展歷程,希望對大家有所幫助。
PHP語言發(fā)展歷史
1、1994年, Rasmus Lerdorf 開始計劃發(fā)展PHP,并在1995年以Personal Home Page Tools對外發(fā)表第一個版本。在這早期的版本中,提供了訪客留言本、訪客計數(shù)器等簡單的功能。
2、1995年,第二版的PHP問市,定名為 PHP/FI(Form Interpreter)。PHP/FI并加入了mSQL的支持,自此奠定了PHP在動態(tài)網(wǎng)頁開發(fā)上的影響力。
3、1996 年底,有15,000個Web網(wǎng)站使用PHP/FI。
4、1997年,使用 PHP/FI 的Web網(wǎng)站成長到超過50,000個。Zeev Suraski 及Andi Gutmans加入了開發(fā)小組,開始了第三版的開發(fā)計劃,從此PHP成為了真正意義上的開源項目。
5、1998年6月,PHP.net發(fā)布了PHP 3.0。在這一版本中PHP可以跟Apache服務(wù)器緊密地結(jié)合,幾乎可以支持所有主流與非主流數(shù)據(jù)庫;而且它擁有非常高的執(zhí)行效率,這些優(yōu)勢使1999年使用 PHP的網(wǎng)站超過了150,000 個。
6、現(xiàn)在PHP5.0版本強化更多的功能。首先,完全實現(xiàn)面向?qū)ο螅峁┟麨镻HP兼容模式的功能。其次是XML功能,PHP5.0版本支持可直觀地訪問XML數(shù)據(jù)、名為SimpleXML的XML處理用界面。同時還強化了XML Web服務(wù)支持,而且標(biāo)準(zhǔn)支持SOAP擴展模塊。數(shù)據(jù)庫方面,PHP新版本提供旨在訪問MySQL的新界面--MySQLi。除此前的界面外,還可以使用面向?qū)ο蠼缑婧皖A(yù)處理語句(Prepared Statement)等MySQL的新功能。另外,PHP5.0上還捆綁有小容量RDBMS--SQLite。
PHP 繼承自一個老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 創(chuàng)建,最初只是一套簡單的 Perl 腳本,用來跟蹤訪問他主頁的人們的信息。它給這一套腳本取名為Personal Home Page Tools。隨著更多功能需求的增加,Rasmus 寫了一個更大的 C 語言的實現(xiàn),它可以訪問數(shù)據(jù)庫,可以讓用戶開發(fā)簡單的動態(tài) Web 程序。Rasmus 發(fā)布了 PHP/FI 的源代碼,以便每個人都可以使用它,同時大家也可以修正它的 Bug 并且改進(jìn)它的源代碼。
PHP/FI,一個專為個人主頁/表單提供解釋程序的程序,已經(jīng)包含了今天 PHP 的一些基本功能。它有著 Perl 樣式的變量,自動解釋表單變量,并可以嵌入 HTML。語法本身與 Perl 很相似,但是它很有限,很簡單,還稍微有些不協(xié)調(diào)。
到1997年,PHP/FI 2.0,也就是它的 C 語言實現(xiàn)的第二版在全世界已經(jīng)有幾千個用戶(估計)和大約 50,000 個域名安裝,大約是 Internet 所有域名的 1%。但是那時只有幾個人在為該工程撰寫少量當(dāng)代碼,它仍然只是一個人的工程。
PHP/FI 2.0 在經(jīng)歷了數(shù)個 beta 版本的發(fā)布后于 1997 年 11 月發(fā)布了官方正式版本。不久,PHP 3.0 的第一個 alpha 版本的發(fā)布,PHP 從此走向了成功。
PHP 3
PHP 3.0 是類似于當(dāng)今 PHP 語法結(jié)構(gòu)的第一個版本。Andi Gutmans 和 Zeev Suraski 在為一所大學(xué)的項目中開發(fā)電子商務(wù)程序時發(fā)現(xiàn) PHP/FI 2.0 功能明顯不足,于是他們重寫了代碼。這就是 PHP 3.0。經(jīng)過Andi,Rasmus 和 Zeev 一系列的努力,考慮到 PHP/FI 已存在的用戶群,他們決定聯(lián)合發(fā)布 PHP 3.0 作為 PHP/FI 2.0 的官方后繼版本。而 PHP/FI 2.0 的進(jìn)一步開發(fā)幾乎終止了。
PHP 3.0 的一個最強大的功能是它的可擴展性。除了給最終用戶提供數(shù)據(jù)庫、協(xié)議和 API 的基礎(chǔ)結(jié)構(gòu),它的可擴展性還吸引了大量的開發(fā)人員加入并提交新的模塊。后來證實,這是 PHP 3.0 取得巨大成功的關(guān)鍵。PHP 3.0 中的其它關(guān)鍵功能包括面向?qū)ο蟮闹С趾透鼜姶蠛蛥f(xié)調(diào)的語法結(jié)構(gòu)。
這個全新的語言伴隨著一個新的名稱發(fā)布。它從 PHP/FI 2.0 的名稱中移去了暗含本語言只限于個人使用的部分。它被命名為簡單的縮寫PHP。這是一種遞歸的縮寫,它的全稱是PHP: Hypertext Preprocessor。
1998 年末,PHP 的安裝人數(shù)幾近 10,000,有大約 100,000 個網(wǎng)站報告他們使用了 PHP。在 PHP 3.0 的頂峰,Internet 上 10% 的 Web 服務(wù)器上都安裝了它。
約九個月的公開測試后,官方于1998年6月正式發(fā)布 PHP 3.0。
PHP 4
1998 年的冬天,PHP 3.0 官方發(fā)布不久,Andi Gutmans 和 Zeev Suraski 開始重新編寫 PHP 代碼。設(shè)計目標(biāo)是增強復(fù)雜程序運行時的性能和 PHP 自身代碼的模塊性。PHP 3.0 的新功能和廣泛的第三方數(shù)據(jù)庫、API的支持使得這樣程序的編寫成為可能,但是 PHP 3.0 沒有高效處理如此復(fù)雜程序的能力。
新的被稱為Zend Engine(這是 Zeev 和 Andi 的縮寫)的引擎,成功的實現(xiàn)了設(shè)計目標(biāo),并在 1999 年中期首次引入 PHP。基于該引擎并結(jié)合了更多新功能的 PHP 4.0,在 PHP 3.0 發(fā)布兩年后,于2000年5月發(fā)布了官方正式版本。除了更高的性能以外,PHP 4.0 還包含了其它一些關(guān)鍵功能,比如:支持更多的 Web 服務(wù)器;HTTP Sessions 支持;輸出緩存(output buffering);更安全的處理用戶輸入的方法;一些新的語言結(jié)構(gòu)。
PHP 4 是當(dāng)前 PHP 的最新版本。修改和增強 Zend Engine 以使 PHP 5.0 整合新功能的工作已經(jīng)開始。
今天,已經(jīng)有 10,000 名開發(fā)人員(估計)和幾百萬網(wǎng)站報告已安裝了 PHP,占整個 Internet 域名的 20%。
PHP 的開發(fā)小組有很多優(yōu)秀的開發(fā)人員,同時還有大量的優(yōu)秀人才在進(jìn)行 PHP 相關(guān)工程的開發(fā)工作,如 PEAR 和 PHP 文檔的工程。
PHP 5
PHP 的未來主要受其核心,Zend Engine 控制。PHP 5 將包含新一代的 Zend Engine 2.0。請訪問其網(wǎng)站以獲取更多關(guān)于該引擎的信息。
語言特點
開源免費
PHP是一個受眾大并且擁有眾多開發(fā)者的開源軟件項目,Linux + Nginx + Mysql + PHP是它的經(jīng)典安裝部署方式,相關(guān)的軟件全部都是開源免費的,所以使用PHP可以節(jié)約大量的正版授權(quán)費用。不過PHP作為一個開源軟件,它缺乏大型科技公司的支持背景,網(wǎng)絡(luò)上對它的唱衰也是經(jīng)久不衰,不過它的持續(xù)迭代和性能持續(xù)增強的現(xiàn)實卻是鼓舞人心的,PHP社區(qū)用實際行動給予各種質(zhì)疑強有力的回?fù)簟?/p>
快捷高效
PHP的內(nèi)核是C語言編寫的基礎(chǔ)好效率高,可以用C語言開發(fā)高性能的擴展組件;PHP的核心包含了數(shù)量超過1000的內(nèi)置函數(shù),功能應(yīng)有盡有很全面,開箱即用程序代碼簡潔;PHP數(shù)組支持動態(tài)擴容,支持以數(shù)字、字符串或者混合鍵名的關(guān)聯(lián)數(shù)組,能大幅提高開發(fā)效率;PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發(fā)效率快;PHP天然熱部署,在php-fpm運行模式下代碼文件覆蓋即完成熱部署;PHP經(jīng)過20多年的發(fā)展,在互聯(lián)網(wǎng)上可以搜到海量的參考資料供參考學(xué)習(xí)。
性能提升
PHP版本越高它的整體性能越高,根據(jù)官方介紹,PHP7.0.0對比PHP5.6性能就提升了2倍,PHP7.4已經(jīng)比PHP7.0快了約30%,PHP8.0在性能上又相對PHP7.4大約改進(jìn)了10%。PHP 8.0 引入了 JIT編譯器特性,同時加入多種新的語言功能,例如命名參數(shù)、聯(lián)合類型、注解、Constructor Property Promotion、match 表達(dá)式、nullsafe 運算符以及對類型系統(tǒng)、錯誤處理和一致性的改進(jìn)。PHP擁有自己的核心開發(fā)團(tuán)隊,保持5年發(fā)布一個大版本、1個月發(fā)布2個小版本的頻率,最新的版本是PHP8.08。PHP 7.0.0[16]發(fā)布于2015-12-03,此版本下最新版本是PHP 7.4.21(發(fā)布日期:2021-07-01),PHP 8.0.0發(fā)布于2020-11-26,此版本下最新版本是PHP 8.0.8(發(fā)布日期:2021-07-01)。
跨平臺
每個平臺都有對應(yīng)的php解釋器版本,指針對不同平臺均編譯出目標(biāo)平臺的二進(jìn)制碼(PHP解釋器),php開發(fā)的程序可以不經(jīng)修改運行在windows、linux、unix等多個操作系統(tǒng)上。
常駐內(nèi)存
php-cli模式下可以實現(xiàn)程序常駐內(nèi)存,各種變量和數(shù)據(jù)庫連接都能長久保存在內(nèi)存[9]實現(xiàn)資源復(fù)用,比較常用的做法是結(jié)合swoole組件編寫cli框架。
頁面生命周期
在php-fpm模式下,所有的變量都是頁面級的,無論是全局變量還是類的靜態(tài)成員,都會在頁面執(zhí)行完畢后被清空,對程序員水平要求低,占用內(nèi)存非常少,特別適合中小型系統(tǒng)的開發(fā)。
參考框架
(一)WordPress內(nèi)容管理系統(tǒng)(CMS)
功能強大、擴展性強,易于擴充功能;搭建的博客對seo搜索引擎友好,收錄快排名靠前;網(wǎng)站上主題多,各色各樣應(yīng)有盡有;有強大的社區(qū)支持,有上千萬的開發(fā)者貢獻(xiàn)和審查。
(二)Hyperf
Hyperf 是一個基于Swoole 高性能、高靈活性的漸進(jìn)式 PHP 協(xié)程框架,內(nèi)置協(xié)程服務(wù)器及大量常用的組件,性能較傳統(tǒng)基于PHP-FPM 的框架有質(zhì)的提升,提供超高性能的同時,也保持著極其靈活的可擴展性,標(biāo)準(zhǔn)組件均基于 PSR 標(biāo)準(zhǔn)實現(xiàn),基于強大的依賴注入設(shè)計,保證了絕大部分組件或類都是 可替換 與 可復(fù)用 的。
(三)ThinkPHP
ThinkPHP是一個快速、兼容而且簡單的輕量級國產(chǎn)PHP開發(fā)框架,最早誕生于2006年初,遵循Apache2開源協(xié)議發(fā)布。秉承簡潔實用、出色的性能和至簡的代碼、注重易用性。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團(tuán)隊的積極參與下,在易用性、擴展性和性能方面不斷優(yōu)化和改進(jìn)。
(四)Drupal
Drupal誕生于2000年 ,是一個基于PHP語言編寫的開發(fā)型CMF(內(nèi)容管理框架),即:CMS+ framework。Drupal的架構(gòu)由三大部分組成:內(nèi)核、模塊、主題。三者通過Hook機制緊密的聯(lián)系起來。可自由配置,能支持從個人博客到大型社區(qū)驅(qū)動的網(wǎng)站等各種不同應(yīng)用的網(wǎng)站項目。
(五)easyswoole
EasySwoole是一款常駐內(nèi)存型的國產(chǎn)分布式swoole框架,支持同時混合監(jiān)聽HTTP、WebSocket、自定義TCP、UDP協(xié)議,且擁有豐富的組件,例如協(xié)程 連接池、協(xié)程Kafka客戶端、協(xié)程ElasticSearch客戶端、、協(xié)程Redis客戶端、協(xié)程自定義隊列、 協(xié)程Memcached客戶端、協(xié)程HTTP客戶端、Crontab定時器等。
(六)Laravel
Laravel是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構(gòu)建一個不錯的網(wǎng)絡(luò)APP,而且每行代碼都可以簡潔、富于表達(dá)力。
(七)CakePHP
CakePHP 設(shè)計層面很優(yōu)雅,沒有自帶多余的 library,所有的功能都是純粹的框架,執(zhí)行效率還不錯。
(八)imi
它可以運行在 PHP-FPM、Swoole、Workerman 多種容器環(huán)境下
【PHP語言發(fā)展歷程】相關(guān)文章:
php的發(fā)展歷程03-21
PHP技術(shù)發(fā)展歷程04-01
C語言的發(fā)展歷程08-10
Java語言發(fā)展歷程07-05
php語言發(fā)展歷史06-05
PHP語言發(fā)展的歷史介紹02-18
Php語言的發(fā)展前景走勢04-03