It’s stats o’clock! See 2014, 2015, 2016.1 and 2016.2 for previous similar posts.
A quick note on methodology, because all these stats are imperfect as they just sample some subset of the PHP user base. I look in the packagist.org logs of the last month for Composer installs done by someone. Composer sends the PHP version it is running with in its User-Agent header, so I can use that to see which PHP versions people are using Composer with.
PHP usage statistics
I have two datasets, from November 2016 and today, which shows the progression of various versions.
November 2016
All versions
Grouped
PHP 7.0.12
8.58%
PHP 5.6
37.46%
PHP 5.5.9
8.25%
PHP 7.0
35.01%
PHP 7.0.11
7.62%
PHP 5.5
18.93%
PHP 7.0.8
6.92%
PHP 5.4
5.40%
PHP 5.6.26
6.12%
PHP 5.3
1.60%
PHP 5.6.27
4.49%
PHP 7.1
1.36%
May 2017
All versions
Grouped
PHP 5.6.30
14.73%
PHP 7.0
36.12% (+1.11)
PHP 7.0.15
9.53%
PHP 5.6
31.44% (-6.02)
PHP 5.5.9
6.12%
PHP 7.1
17.64% (+16.28)
PHP 7.0.17
6.00%
PHP 5.5
10.61% (-8.32)
PHP 7.1.3
5.88%
PHP 5.4
3.11% (-2.29)
PHP 7.1.4
3.65%
PHP 5.3
0.98% (-0.62)
A few observations: With a big boost of PHP 7.1 installs, PHP 7 overall now represents over 50%. 5.3/5.4 are really tiny and even 5.5 is dropping significantly which is good as it is not maintained anymore since last summer. That’s a total of 85% of installs done on supported versions, which is pretty good.
And because a few people have asked me this recently, while HHVM usage is not included above in the graph it is at 0.36% which is a third of PHP 5.3 usage and really hardly significant. I personally think it’s fine to support it still in libraries if it just works, or if the fixes involved are minor. If not then it’s probably not worth the time investment.
Also.. since I now have quite a bit of data accumulated and the pie chart format is kind of crappy to see the evolution, here is a new chart which shows the full historical dataset!
PHP requirements in Packages
The second dataset is which versions are required by all the PHP packages present on packagist. I only check the require statement in their current master version to see what the latest is.
PHP Requirements – Current Master – May 2017 (+/- diff from November 2016)
5.22.13% (-0.22)
5.337.6% (-3.65)
5.428.38% (-1.74)
5.517.11% (+0.13)
5.69.37% (+3.15)
7.04.61% (+1.53)
7.10.81% (+0.81)
A few observations: This is as usual moving pretty slowly. I think I can give up trying to advise for change, it doesn’t seem to be working.. On the other hand it looks like Symfony is going to use 7.0 or 7.1 for it’s v4 to come out later this year, so hopefully that will shake things up a bit and make more libraries also realize they can bump to PHP 7.
Retweet
Source: SELD