每年一次,我回顧PHP世界中的最新發展,並期待未來的發展。就像2020年和2019年一樣,我們又來了!
就像我一次又一次地說:PHP與十年前的語言不一樣,對此我們非常感謝。這是一種快速可靠的語言,用於大規模建立大型應用程式。因此,讓我們討論一下去年PHP對語言和社群的一些最顯著變化。
PHP 8及更高版本
新的主要版本PHP 8於去年底推出。我在該主題上寫了很多文章,在這裡我不會複製/貼上所有內容。與往常一樣,效能僅在提高,如Kinsta所做的基準測試所示。
還有一個JIT確實可以改善某些專案的效能,而且如果您不使用共用主機,則預先載入會對整體專案產生正面的影響。
我認為諸如屬性(也稱為「註解」),命名參數和提升的屬性之類的功能也值得一提,因為它們無疑對PHP 8如此出色的發布做出了貢獻。
同時,核心團隊已經在開發新版本的PHP 8.1,該版本將於2021年底發布。目前,最重要的功能是枚舉和纖維,我將在本文稍後再次提及它們。郵政。
年復一年,核心團隊成功地為社群帶來了一個新的穩定版本,其中包含許多功能和生活品質的改進。升級路徑也不再那麼困難了。我將自己的一些專案從PHP 7.4升級到PHP 8,每個專案只花了一個小時左右的時間。確實沒有任何理由留在後面!
PHP的類型系統
關於類型,實際上確實有一些非常令人振奮的消息:枚舉將在PHP 8.1中添加。最重要的是,我們也看到一些靜態分析工具的維護者透過登陸第一個RFC為PHP的原始程式碼做出了貢獻。這增加了never類型,這對於靜態分析是有用的。
說到靜態分析工具,PhpStorm增加了對Psalm和PhpStan的內建支持,這是邁向更廣泛適應的重要一步。
不幸的是,仍然沒有對仿製藥的支持。有一些主要的路障,特別是因為我們仍在處理動態類型的語言。尼基塔在這裡概述了這些問題。就我個人而言,我的方法將是簡單的方法:僅支援運行時擦除的泛型,並依賴靜態分析。這不僅需要技術上的解決方案,還需要整個PHP社群的思維轉變。也許有一天它會成為一個可行的選擇,但到目前為止還沒有。
非同步PHP
最近有一個大新聞:PHP正在獲得協程—又稱。綠色線程—在PHP 8.1!雖然,纖維(也就是所謂的纖維)可能並沒有您想像的那麼大改變遊戲規則。
即使光纖本身可能只是大型非同步電腦中的一小塊齒輪,但RFC再次引起了人們對非同步社群的關注,對此我們只能感到高興。非同步框架(例如Amphp和ReactPHP)正變得越來越流行,最近Laravel宣布了對Swoole的內建支援。
社群
我不能不提及事實上的標準軟體套件管理器Composer。它在2020年10月發布了一個新的主要版本:Composer 2.0。此版本具有一些UX改進,但最重要的是實現了極大的性能改進,有時甚至在全新安裝時其速度也提高了三倍。
說到作曲家,我喜歡透過查看一段時間內可用的軟體包來衡量PHP生態系統的當前狀態。去年,我談到每天的下載量為2500萬次,而今天這一數字已增長了一倍以上,而我們的每日下載量為6000萬次。
最後,看一下該圖,列出隨著時間的推移軟體包和版本的數量。也可以在他們的網站上找到它。您可以清楚地看到一個健康的生態系統正在成長,而且沒有盡頭。
語言
最後,讓我們回顧一下最近幾年PHP新增的所有內容。如果您沒有跟上它的發展,那麼您真的想檢查一下此清單。我認為這表明社區和核心開發團隊在最近幾年中的成長,我相信還會有更多的成長。
Enums
Fibers
Named Arguments
Constructor Property Promotion
Short closures
Null coalescing operator
Traits
Typed properties
Spread operator
FFI
Return type declarations
Generators
#所有這些要說的是:PHP還活著並且做得很好。每年,我對語言的發展方向感到更加滿意,並希望在未來的許多年中使用它!
php中文網翻譯自:https://stitcher.io/blog/php-in-2021,感謝原作者Brent!