每隔六个月,我会更新社区中使用的 PHP 版本,我们还会在本文中包含历史数据。
记住,我使用的是现有数据。这意味着这些图表不能 100% 准确地代表整个 PHP 社区,但它们准确地代表了 PHP 最突出的部分之一:packagist 生态系统。
https://packagist.org/php-statistics
使用情况统计
与往常一样,我们首先查看目前使用的 PHP 版本的百分比,请注意,我省略了使用率不超过 1% 的所有版本:
版本 | 2023-01 | 2023-07 | 2024-01 | 2024-07 |
7.2 | 4.3% | 4.3% | 2.5% | 2.0% |
7.3 | 5.3% | 4.2% | 3.2% | 1.9% |
7.4 | 27.7% | 19.9% | 13.6% | 10.2% |
8.0 | 16.2% | 12.3% | 7.2% | 5.4% |
8.1 | 38.8% | 39.3% | 35.2% | 26.1% |
8.2 | 4.7% | 17.2% | 29.4% | 32.3% |
8.3 | 0.0% | 0.2% | 6.4% | 19.9% |
这些数据的可视化如下所示:
版本使用的演变
这次我想要研究的另一个数据点是比较每个 PHP 版本在发布后的上半年增长情况。
版本 | 6 个月采用率 |
7.0 | 19.0% |
7.1 | 16.2% |
7.2 | 12.4% |
7.3 | 19.8% |
7.4 | 17.1% |
8.0 | 9.2% |
8.1 | 15.4% |
8.2 | 12.5% |
8.3 | 13.5% |
有趣的是,与 PHP 8.* 版本相比,PHP 7.* 版本的采用率似乎更快。
从个人角度来看,我也觉得没必要立即更新到较新的 PHP 版本,尤其是因为它们在过去两年中没有提供那么多令人兴奋的功能。我想知道 PHP 8.4 的采用率会更高还是更低,尤其是因为它有一些非常好的功能(例如属性挂钩等)。
让我们再看一下版本随时间的变化,您也可以在此图表中发现采用率在放缓:
所有时间进化
#所需版本
接下来,我使用 Nikita 的流行包分析器下载了 1000 个最受欢迎的包。我使用一个脚本扫描这些包以确定它们所需的最低版本。结果如下:
版本 | 2023-01 | 2023-07 | 2024-01 | 2024-07 |
5.2 | 10 | 7 | 7 | 5 |
5.3 | 78 | 65 | 58 | 50 |
5.4 | 40 | 31 | 28 | 26 |
5.5 | 37 | 21 | 16 | 15 |
5.6 | 43 | 32 | 30 | 29 |
7.0 | 30 | 24 | 24 | 24 |
7.1 | 159 | 125 | 100 | 93 |
7.2 | 144 | 133 | 123 | 118 |
7.3 | 106 | 56 | 49 | 42 |
7.4 | 98 | 97 | 87 | 80 |
8.0 | 103 | 144 | 126 | 123 |
8.1 | 129 | 107 | 154 | 184 |
8.2 | - | 94 | 135 | 153 |
8.3 | - | - | 0 | 4 |
这里有两点重要说明。
此表显示了所需的最低版本。这意味着最低版本(例如 8.0)的软件包也可支持 PHP 8.1、PHP 8.2 和 PHP 8.3。
如果你数一数,就会发现每年都存在一些差异。并非每个软件包都列出了有效的版本字符串。
这是 Composer 和 Packagist 的创建者和维护者的私人 Composer 存储库。
不要比较绝对数字,最好将这些数据绘制成图表进行相对比较,这样我们可以看到随时间的变化:
随着时间的推移,对 PHP 的要求降至最低
我们看到本月前四个软件包需要 PHP 8.3 作为最低版本,但与 PHP 8.2 和 PHP 8.1 相比,差异很大,后两个版本分别有 94 个和 125 个软件包使用它们作为最低版本。诚然,PHP 8.3 是一个相当无趣的版本,也有很多弃用功能,但我没想到差异会这么大。
我们将在明年的 PHP 8.4 中看到这种趋势如何以及是否会继续下去。
再次,我想提醒开源作者,我们共同肩负着推动 PHP 生态系统前进的责任。提高最低要求是一件好事,在我看来,应该这样做,但应该做得更多、更快。欢迎通过电本文下方的评论表达不同意见,分享您的想法。
作者:万能的大雄