鳥哥:寫在 PHP 7 發布之際一些話
就在幾分鐘之前,鳥哥發布微博,確認 PHP7 正式版明天發布!
下載:
暫未有官方說明,詳細改進請看:https://github.com/php/php-src/compare/php-7.0.0...master
PHP 7。0。0 包含最新版本的 Zend Engine,包括以下特性:
- 提升性能:PHP 7 速度是 PHP 5。6 的兩倍
- 支持 64 位
- 許多重大錯誤可以進行異常處理
- 移除了舊的和不支持的 SAPIs 和擴展
- null 合并操作符(??)
- 結合比較運算符 (<=>)
- 標量類型聲明
- 匿名類
做開源也有4、5 年的時間了,從最初的 Yaf,到今天的 PHP7,我參與的項目越來越多,使用我代碼的用戶也越來越多,明天就要發布的 PHP 7,絕對是我從事開源以來的一個最重要里程碑,我應該紀念一下今天,就讓我稍微感性一次吧。
PHP 7 項目開始于去年春節的時候,那個時候我們基于 PHP-5.5 的 Opcache JIT 項目,基本上因為無法得到期望的結果而擱置了。在做 JIT 的時候收集到的信息讓我們認識到,基礎部分還不夠好,并不能很好的支持 JIT,所以在 2014 年 2 月左右,我們開始了重構項目,當時的希望是說通過重構,能得到 30% 以上的性提升,為將來的進一步優化提供基礎。
那時還沒有給這個項目起名字,我們只是試試,那幾個月是我最忙碌的時刻,因為只有我們倆個人在這個項目中,我還因為自身微博的工作也比較忙,所以基本上只晚上的時間都撲在了上面。 不過好在,我和另外一個人有 5 個小時的時差,所以很多工作可以串行起來。
隨著項目的推進,我們驚喜的發現性能提升比我們想象的還要大,到 4 月的時候另外一個人也加入了進來,到 5 月基本上已經完成了大部分的工作,于是我們公布了這一個成果,定名為 PHP NG 項目。
但我沒想到的是,我們遇到了社區很大的阻力,因為在我們秘密開發 PHP NG 的時候,社區還并行著一個主要是微軟的同學們發起的 64 位支持的項目,當我們公開 PHP NG 的時候,他們質疑說,突然拿著這么大的一個 Patch 出來,沒有其他人懂,后續如何維護,如何和 64 位支持的分支合并等,繼而反對采納 PHP NG 分支。
當時我是非常沮喪的,持續好久的爭吵也讓我感到非常疲倦,最后因為我實在無法排遣,一腔怒火的也不管自己蹩腳的英文,在郵件組回了一封吐槽郵件,呼吁大家珍惜這個性能提升分支。
還有個很好玩的插曲,PHP NG 的支持者很多,他們也對這樣的爭吵很郁悶,某天,有一些支持者就在 PHP 官網上發布了這樣的一個新聞: http://php.net/archive/2014.php#id2014-05-27-1 其中寫到:
"When we aren't looking for pictures of kittens on the internet,internals developers are nearly always looking for ways to improve PHP,a few developers have a focus on performance。"
但當天反對者們就說,不行,PHP NG 還沒有被接納,要求刪除這篇文章,好在考慮到文章已經發出去了,最后就在首頁上下掉了這個文章的入口,只是在存檔中保留了內容。 很多媒體都感受到了這次的烏龍。
爭執不下之后,不得已,我們只能發起投票,來決定是否接納 PHP NG。好在,最后投票的時候,絕大部分人都支持了 PHP NG 項目,并決定以 PHP NG 為基礎,開始我們的新版的 PHP 的開發。 當時還沒有確定用 PHP 6 還是 PHP 7 版本號(后來投票決定 PHP 7)。 我現在經常會說這次經歷,讓我感受到了"民主之痛"。
之后的事情大家就都能看到了,在這近兩年的時間里, 各種新特性的加入,性能的持續提升,很多以前不合理的地方改進等等,都加入到了 PHP 7,讓 PHP 7 越來越豐滿。
從最底層的 ZVAL 的改變,到標量類型提示,從最初的 30% 的性能提升,到現在超過 100% 的性能飛躍,每一處變化都讓人值得期待。 然后經過幾次不情愿的跳票,終于,到今天,這一切都將呈現于你面前。
有的時候我會想,我是幸運的,幸運在一直有機會做沒做過并且有挑戰的事情,幸運在一直能感受到自己的成長,幸運在所做的大部分努力,終究看到了效果,得到了回報。也衷心的希望我的幸運可以激勵更多的人參與到開源中來。
未來,我們還會一如既往的致力于提升 PHP 的性能,提升 PHP 的品質,讓更多的 PHPer 們,可以持續享受到透明的提升。
最后,做開源這么久,帶給了我很多的收獲,我要謝謝大家,謝謝這些鼓勵,也謝謝那些善意的謬贊。
PS: 本來想等到 PHP7 發布以后再發的,但是想到可以為它的到來造勢,就先發布罷。 PHP7 目前已經可以下載,官方宣布考慮到時差問題,后天早上來看吧。
目前下載地址: http://php.net/get/php-7.0.0.tar.gz/from/a/mirror
enjoy!
via 微信公眾號:風雪之隅