您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>編譯器/仿真器>

PHP7.0的五個方面的內(nèi)容

大?。?/span>0.5 MB 人氣: 2017-10-13 需要積分:1
PHP 7 是11年來首次發(fā)布的PHP主版本,PHP上一次發(fā)布主版本是在2004年 ,當(dāng)時發(fā)布的是PHP 5.0.0。
  與這次PHP核心開發(fā)人員沉睡已久不同,PHP 6 曾立志要讓PHP支持Unicode字符串。然而開發(fā)停滯不前,PHP 6計劃在2010年被取消了。
  自那以后雖然也有一些帶著重要新特性的PHP版本發(fā)布,比如PHP 5.4,但沒有哪個真正稱得上主版本。
  直到2010年Facebook為 HipHop編譯器揭開面紗。這款編譯器可以將PHP轉(zhuǎn)為C++代碼,再轉(zhuǎn)為本地機(jī)器碼,用C++編譯器編譯。盡管這個想法很好,也改進(jìn)了PHP的性能,但不實用,因為本地機(jī)器碼編譯PHP腳本耗時太久。
  之后Facebook換了另一種方法,他們開發(fā)了HHVM(HipHop Virtual Machine),通過JIT engine(Just In Time)將PHP代碼轉(zhuǎn)換為本地機(jī)器碼。這使得所耗時間大大減少并且性能得到顯著改進(jìn)。
  很顯然,F(xiàn)acebook不滿意PHP的特性,于是在2014年啟動Hack項目,它源于PHP語言卻有著很多PHP沒有的特性,比如對所有數(shù)據(jù)類型都進(jìn)行更嚴(yán)格的類型檢查,以及支持內(nèi)置異步編程
  不久后Zend的Dmitry Stogov 發(fā)布了PHP的一個名為PHPNG的分支。
  (二)PHP 7 的主要新特性PHPNG的初衷是做調(diào)查,調(diào)查JIT engine的引入將對基于PHP版本的Zend Engine有何影響。然而,隨著進(jìn)一步的研究他發(fā)現(xiàn),其他方面的改進(jìn)能讓PHP代碼運行得更快。
  PHPNG是PHP 7的基礎(chǔ),起名叫PHPNG是為了避免與被取消的PHP 6混淆。
  PHP7新增的其他功能包括:標(biāo)量值的嚴(yán)格類型、匿名類、嵌套類、編譯PHP引擎的可能性以及特定程序優(yōu)化,好比Wordpress使用了Performance Guided Optimizations(PGO)。
  PHP 7.0本來計劃在10月發(fā)布,但是因為一些嚴(yán)重的bug所以推遲到了十二月。
  (三)PHP7 接受程度調(diào)查結(jié)果分析PHP 7 的發(fā)布是PHP世界近年來最令人激動的事之一,因為對其功能有太多的期待,比如上文提到的那些。
  許多開發(fā)者迫不及待地使用PHP7,但不是每個人都能正確地使用它。接下來這個調(diào)查就是用于評估PHP程序員是否愿意采用PHP 7。
  調(diào)查主要圍繞三個問題:
  你是否打算在你的生產(chǎn)中使用PHP 7?你是否打算在你的開發(fā)環(huán)境中使用PHP 7?你生產(chǎn)中所使用的最新版的PHP是哪個?
PHP 7 調(diào)查結(jié)果分析從第一個問題可看出絕大多數(shù)程序員不是早期使用者。他們想使用PHP 7 但需要過一段時間等PHP7 穩(wěn)定后再用。
  盡管有8個候選發(fā)布版本,并且PHP測試小組評估PHP通過全部測試的可能性很大,但開發(fā)者也知道應(yīng)該會有些bug和向后不兼容的更改存在,這些會導(dǎo)致程序員花費相當(dāng)長的時間,用于PHP的最終修復(fù)或者基于開發(fā)者需要去修改代碼。
  另外,還有一部分的程序員只想在新項目中使用PHP 7,因為目前正在進(jìn)行的這些項目非常重要,因此不能被PHP7 可能出現(xiàn)的錯誤影響。
  第二個問題是關(guān)于PHP程序員對PHP 7的好奇心有多重。結(jié)果顯示大部分程序員愿意在開發(fā)環(huán)境中測試PHP 7,因為這樣更安全。
  程序員們已經(jīng)能夠想象一旦他們的代碼出現(xiàn)問題,等待他們修復(fù)的工作量該是多么的驚人,尤其是那些自己擁有測試套件的程序員,因為他們可能已經(jīng)看到有很多的測試顯示失敗。
  第三個即最后一個問題,顯示了程序員們正在使用的PHP版本有多新。
  有一小部分的人正在勇敢地在生產(chǎn)中使用PHP 7。雖然我認(rèn)為他們不大可能在非常重要的項目中使用PHP 7開發(fā)。
  數(shù)據(jù)顯示了個好消息,絕大部分程序員已經(jīng)開始使用PHP 5.6了。而且在最壞的情況下他們?nèi)匀皇褂肞HP 5.3。這有可能是因為他們的公司不提供其他的版本,或者是因為新版本不適用于他們的代碼。
  如今幾乎每個人使用的版本都不低于PHP 5.3.11,因為更老的版本里有致命的bug,這些可能會導(dǎo)致你的服務(wù)器崩潰。
  也許你很好奇那3位選擇“其他”的開發(fā)者使用的是什么,事實上只有一位準(zhǔn)確說了正在使用的是HHVM。為了使用HHVM你需要控制你的托管環(huán)境并且需要手工編譯它。然而,絕大多數(shù)程序員不可能這么做或者沒這技術(shù)。
 ?。ㄎ澹㏄HP 7的未來現(xiàn)在PHP 7 已經(jīng)正式發(fā)布了,你也許會很好奇下一步是什么。以下是一些已在計劃內(nèi)以及我們猜想的特性。
  一些新特性的計劃我們已經(jīng)在“Lately in PHP Podcast”中討論過了。如果你很好奇,你可以追隨博客音頻或者訂閱YouTube頻道來獲取關(guān)于PHP的最新功能的討論。
  1. PCO是加密的PDO
  我們已經(jīng)知道的是會有一個抽象擴(kuò)展,名為PCO,這個類似于PDO但是有密碼。
  2. PHP靜態(tài)代碼分析器
  Rasmus Lerdorf還開發(fā)了一個工具叫PHAN,這是個PHP靜態(tài)代碼分析器。目的是僅通過分析你的PHP代碼而不去運行代碼,就檢測出可能存在的bug。該工具利用了PHP 7中新的AST(抽象語法樹)擴(kuò)展。
  3. 帶async and await的異步編程
  另一種可能性是,PHP使用async and await構(gòu)造,以提供更好的內(nèi)置異步編程支持。這使你能夠在同一個腳本中運行多并行任務(wù),而不需要等一個任務(wù)執(zhí)行一個任務(wù)。
  請不要將異步編程與多線程編程混淆。PHP已經(jīng)可以使用pthreads extension.執(zhí)行多線程編程了。
  Async and await構(gòu)造最大的優(yōu)勢是不再需要你處理callback hell。這意味著如果你需要等待一些異步操作,比如訪問文件系統(tǒng)、數(shù)據(jù)庫或遠(yuǎn)程服務(wù)器,你只需要使用等待關(guān)鍵字,那么異步操作完成后,腳本將會繼續(xù)操作下一個語句。
  Async and await構(gòu)造關(guān)鍵字需要PHP有一些重要的改變,因為它需要處理內(nèi)部事件循環(huán)。然而,PHP 開發(fā)者已經(jīng)開始討論,實施async and await以及關(guān)鍵字的構(gòu)造可能性,因為這些關(guān)鍵字應(yīng)該在其他開發(fā)者開始使用之前被保存。
  此外,F(xiàn)acebook Hack語言也支持async and await。我猜測Facebook是想為PHP程序員帶來具有async and await功能的PHP。
  也許你懷疑PHP需要這些構(gòu)造的必要性,但是一旦你了解他們的優(yōu)點后,你就會知道他們的重要性。
  很多程序員轉(zhuǎn)移到Node.js,因為Node.js支持異步編程。Node.js目前還不支持async and await關(guān)鍵字,但也只是時間問題,因為async and await也是Ecma 7的新特性之一,而且將來的Node.js將使用基于Ecma 7的Java
  這樣的發(fā)展被認(rèn)為更重要。尤其是最近WordPress宣布將盡可能刪減Java,包括服務(wù)器端的Node.js和React框架。
  顯然這是他們對服務(wù)器最大利用化的一步,該服務(wù)器托管著Wordpress.com blogs。我不知道WordPress社區(qū)是否會接受這項目,因為有成千上萬的插件依賴于PHP。
  4. 獨立的Web服務(wù)器
  PHP有一個獨立的Web服務(wù)器,但不推薦給生產(chǎn)環(huán)境。
  一旦PHP支持內(nèi)置異步編程,那用它開發(fā)HTTP Web 服務(wù)將更容易,哪怕用純PHP編寫,就像是在用Node.js一樣。
  這使得PHP的功能更靈活,處理并行請求更高效使用更少內(nèi)存,尤其是在合并異步編程和基于pthreads的多線程編程后之后。
 ?。┛偨Y(jié)PHP 7是巨大的飛躍,但世界在不停旋轉(zhuǎn),因此PHP也必須跟上新趨勢,比如上文提到的那些。
  我們還是要祝賀所有付出時間和精力的開發(fā)者,因為是他們使PHP如此優(yōu)秀,比如PHP 7。
  如果你喜歡本文,或者想問一些和PHP 7新特性有關(guān)的問題并收獲回復(fù),請在下方評論。
  原文鏈接:PHP 7 Release Date Arrived: Will Developers Adopt PHP 7?(譯者/王葦棋 審校/林煬 責(zé)編/仲浩)
  譯者簡介:王葦棋,碩士畢業(yè)于香港浸會大學(xué),關(guān)注數(shù)據(jù)挖掘和信息安全。
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?