每年我都會回顧PHP世界的新發展并期待未來的發展。就像2020年和2019年一樣,我們又來了!
正如我一次又一次說過的,PHP 已經不是10 年前的語言了。一種快速可靠的語言,用于大規模構建大型應用程序。因此,讓我們討論過去一年PHP 語言和社區發生的一些重要的變化。
PHP8 或更高
去年在年底發布了新的主要版本PHP 8。我已經寫了很多關于這個主題的文章,我不會在這里復制/粘貼所有內容。與往常一樣,從Kinsta 執行的基準測試中可以看出,性能正在提高。
還有一些JIT 確實可以提高某些項目的性能,如果您不使用共享主機,預加載它們將對整個項目產生積極影響。
我認為還值得一提的是特性(有時稱為“注釋”)、命名參數和提升的特性等特性。因為這些特性無疑促成了PHP 8 的偉大發布。
同時,核心團隊已經在著手開發新版本的PHP 8.1,將于2021 年在年底發布。目前,重要的特性是枚舉和纖維,我們將在本文后面介紹。明信片。
每年,核心團隊都會成功地為社區帶來一個新的穩定版本,該版本具有許多功能和生活質量改進。升級之路不再艱難。我將一些項目從PHP 7.4 升級到PHP 8。每個項目只用了大約一個小時。真的沒有理由不落后!
PHP 的類型系統
關于類型,實際上有一些非常有趣的消息。枚舉是在PHP 8.1 中添加的。重要的是,我看到一些靜態分析工具的維護者登錄到第一個RFC 并貢獻PHP 源代碼。這添加了一個對靜態分析有用的Never 類型。
在靜態分析工具方面,PhpStorm 添加了對Spec 和PhpStan 的內置支持,這是邁向廣泛采用的重要一步。
不幸的是,仍然沒有對仿制藥的支持。有一些主要障礙,特別是因為我們仍在處理動態類型語言。 Nikita 在這里解決了這些問題。就個人而言,我的方法很簡單。它只支持在運行時清除的泛型并依賴于靜態分析。這不僅需要技術解決方案,還需要整個PHP 社區的思維方式轉變。有一天它可能是一個可行的選擇,但到目前為止還沒有。
異步PHP
近有一些好消息。 PHP 協程(又名:又名綠色線程- PHP 8.1!但是纖維(所謂的纖維)可能不會像您想象的那樣改變游戲規則。
雖然光纖本身可能是大型異步計算機的小設備,但RFC再次吸引了人們對異步社區的關注,我們不禁為此感到高興。異步框架(如Amphp 和ReactPHP)越來越流行,Laravel 近宣布內置對Swoole 的支持。
社區
更不用說Composer,事實上的標準包管理器。 2020 年10 月,我們發布了新的主要版本Composer 2.0。這個版本有一些UX 改進,但重要的是,顯著的性能提升。有時,即使是全新安裝也快3 倍。
說到Composer,我喜歡通過查看一段時間內可用的包來衡量PHP 生態系統的當前狀態。去年我談到每天2500 萬次下載,今天這個數字增加了一倍多,我們每天的下載量是6000 萬次。
查看隨時間列出軟件包和版本數量的圖表。您也可以在我們的網站上找到它。很明顯,一個健康的生態系統正在成長并且沒有盡頭。
后面,讓我們回顧一下近年來PHP 的所有新增功能。如果您沒有跟上開發的步伐,您可能需要查看此列表。我相信這是社區和核心開發團隊近年來成長的證明,相信還會有更多的成長。
這一切都不得不說。 PHP 還活著并且工作正常。隨著歲月的流逝,我對語言的發展方向感到更加滿意,并希望在未來很長一段時間內使用它!