Каждые шесть месяцев stitcher.io обновляет информацию о том, какие версии PHP используются в сообществе.
Имейте в виду, что берутся открытые данными. Это означает, что эти диаграммы не являются на 100% точным представлением сообщества PHP в целом, но они точно отражают одну из наиболее важных частей PHP: экосистему packagist.
Статистика использования
Начнем с анализа процента используемых сегодня версий 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 7, похоже, получили более быстрое распространение по сравнению с версиями PHP 8... Интересно, будет ли скорость внедрения PHP 8.4 выше или ниже, тем более что в нем есть несколько очень приятных функций (например, перехватчики свойств).
Давайте еще раз посмотрим на эволюцию версий с течением времени, вы также можете заметить замедление темпов внедрения на этом графике:
Требуемые версии
Затем был использован популярный анализатор пакетов Nikita для загрузки 1000 самых популярных пакетов composer. Используется скрипт, который сканирует эти пакеты, чтобы определить их минимальную требуемую версию. Вот результаты:
Версия |
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.
Если вы посчитаете цифры, то заметите, что в каждом году есть некоторые различия. Не в каждом пакете указана допустимая строка версии.
Вместо сравнения абсолютных значений лучше всего представить эти данные в виде диаграммы для относительного сравнения, чтобы мы могли видеть изменения с течением времени:
В этом месяце мы видим, что для первых четырех пакетов в качестве минимальной версии используется PHP 8.3, однако есть огромная разница по сравнению с PHP 8.2 и PHP 8.1, в которых в качестве минимальной версии использовались 94 и 125 пакетов соответственно. Конечно, PHP 8.3 был довольно скучным релизом, к тому же с большим количеством устаревших версий, но не было очевидным, что разница будет такой большой. Посмотрим, как и продолжится ли эта тенденция в следующем году с PHP 8.4.
Еще больше статей, юмора и жизненны моментов в Пихта DEV
Комментарии (4)
koreychenko
09.07.2024 13:38+1Ну, разница в скорости роста популярности довольна очевидная.
По сравнению с 5.6 семерка давала довольно сильное ускорение кода просто нахаляву. При этом несовместимости по коду с 5.6 было не то, чтобы очень много. Т.е. в многих проектах можно было просто обновиться и сразу получить прирост производительности.
Переезд с 7 на 8 такого прироста в скорости уже не давал, синтаксические плюшки, которые подвезли в восьмерке являются просто сахаром и без них можно обойтись в дальнейшей разработке. При этом можно было получить геморроя на ровном месте из-за того, что php 8 стал более строгим языком (наконец-то).
Поэтому если у тебя есть старый проект, то обновлять его на новую версию PHP смысла особо и не имеет.
DennisP
Часто имеет значение не минимальная, а максимальная версия PHP, с которой может работать та или иная библиотека.
mepihin Автор
Поддживаю, но, как я понимаю, здесь идет больше посыл "как быстро уйдут старые версии из обихода". Ведь тот же гос сектор работает на сторгих сертификатах, где версия php существенно отстает от современных. В моей текущей компании (коммерческая) буквально пару недель назад обновили до 8.3. Здесь же уже другой принцип по версионности языка.
А вообще, я лично считаю, что минимальная версия сейчас должна быть 8.0. Это позволяет без проблем обновляться дальше и юзать крутые новые фичи php.
DennisP
Так старые версии PHP не уйдут, пока будет необходимость использовать код, который не работает на более новых.