開發者 Brent 發布了一篇文章,詳細介紹了 2019 年的 php 是怎么樣的。
原文地址:https://stitcher.io/blog/php-in-2019
Brent 承認 PHP 當前仍然存在一些問題,比如許多核心函數仍然有不一致的方法簽名、配置設置還是令人困惑,但是以他自己的開發經驗來看,他認為 PHP 是 Web 開發的絕佳選擇,使用 PHP,他可以創建可靠、可維護和高質量的應用,并且自己與客戶對最終結果都滿意。
文章中 Brent 關注于 PHP 這些年來發展得好的一面,他通過幾下幾點,說明“PHP 不再是十年前那一門糟糕的語言了”:
- PHP 正在積極開發,每年都會發布新版本
- PHP 5 之后性能在不斷提高
- 有非常活躍的框架、包和平臺組成的語言生態
- PHP 在不斷發展,過去幾年中添加了許多新功能
- 各種開發工具在過去幾年中已經成熟,并且保持增長
PHP 正在積極開發,每年都會發布新版本
當前 PHP 版本是去年 12 月份發布的 7.3,7.4 預計在今年年底發布,而 PHP 8.0 將是 7.4 之后的下一個版本。
BranchInitial ReleaseActive Support UntilSecurity Support Until7.11 Dec 20162 years, 5 months ago1 Dec 20185 months ago1 Dec 2019in 6 months7.230 Nov 20171 year, 5 months ago30 Nov 2019in 6 months30 Nov 2020in 1 year, 6 months7.36 Dec 20185 months ago6 Dec 2020in 1 year, 6 months6 Dec 2021in 2 years, 6 months
自從 5.X 時代以來,核心團隊希望每年發布一個新版本,在過去四年中他們成功維護了這么一個發布周期。通常每個新版本都會得到官方兩年時間的積極支持,之后有一年僅提供安全修復,其目的是激勵 PHP 開發人員盡可能保持更新。
更加具體的發布與維護周期可以查看 PHP 官網的介紹:
- https://www.php.net/supported-versions.php
看到上邊這個表,你可能會發現版本號從 5 跳到了 7,那 PHP 6 去哪里了?
其實早在 2005 年,PHP 社區就發起了 PHP 6,但由于實現 Unicode 面臨的困難太大,項目最終流產,PHP 官方沒有發布 PHP 6 GA,并且在 2010 年將 PHP 6 取消。雖然 PHP 6 項目取消了,但其大量已實現功能集成到了 PHP 5.X 中,包括 OOP 方面的改進,使得 PHP 從面向過程跨越到面向對象。
PHP 6 被取消了,但是之前對這個主要版本的研發都是以 PHP 6 的名義進行的,所以許多參考資料與書籍都是用“PHP 6”來指代該版本。官方擔心這在放棄 PHP 6 之后會引起混亂,于是干脆不使用 PHP 6.X 版本號,直接從 5 跳到 7。
詳情可以查看官方說明:https://wiki.php.net/rfc/php6
PHP 5 之后性能在不斷提高
PHP 7.0 中,PHP 核心部分完全重寫,帶來了最新的 Zend 引擎,使得 PHP 性能提升了兩到三倍。
作者引用了 https://kinsta.com/blog/php-benchmarks 的基準測試來說明這一點,指出自 7.0 以來,PHP 性能一直在提升,PHP Web 應用與其它語言的 Web 框架相比在一些情況下性能好很多。但他也表示:“當然 PHP 框架不會勝過 C 與 Rust,但比 Rails 或 Django 好得多,與 ExpressJS 相當。”
有非常活躍的框架、包和平臺組成的語言生態
提到 PHP 的框架,不得不說 wordPress/ target=_blank class=infotextkey>WordPress,但是作者表示 WordPress 絕對不代表當前的 PHP 生態:“PHP 框架再也不僅僅只有 WordPress 了”。
當前 PHP 中有兩個主要的 Web 應用開發框架:Symfony 與 Laravel,還有 Zend、Yii、Cake 與 Code Igniter 這些,此外還有不少較小的框架。
Symfony 與 Laravel 都擁有龐大的包和軟件生態,包括 admin 面板和 CRM、獨立軟件包、CI、分析器、Web socket 服務器、隊列管理器與支付集成等。
此外,近幾年 PHP 異步框架也興起了,Swoole、Amp 與 ReactPHP 是其中的佼佼者,它們是用 PHP 或其它語言編寫的框架和服務器,用來運行真正的異步 PHP。
作者認為衡量 PHP 生態當前狀況的一種方法是查看 Packagist 這個 PHP 主要軟件包存儲庫的數據。通過以下趨勢圖,可以發現軟件包數量呈指數增長,并且當前錄入軟件包有 223 217 個,總的安裝量達到了 14 827 204 847,PHP 生態已不再像以前那么弱小。