Статистика версий PHP: Июль, 2024
Предыдущую публикацию можно прочитать здесь, исторические данные будут включены в эту статью.
Не забывайте, что я работаю с имеющимися данными. Это означает, что эти диаграммы не являются на 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, тем более что за последние два года они предложили не так много интересных фич. Интересно, будет ли скорость принятия PHP 8.4 выше или ниже, тем более что в нем есть несколько очень хороших фич (например, property hooks).
Давайте ещё раз посмотрим на эволюцию версий во времени: на этом графике можно заметить замедление темпов внедрения:
Требуемые версии
Далее я воспользовался анализатором популярных пакетов Никиты, чтобы загрузить 1000 самых популярных пакетов композитора. Использовался скрипт, сканирующий эти пакеты для определения минимально необходимой версии PHP. Вот результаты:
Версия | 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.
Ещё раз хочу напомнить авторам открытого кода об ответственности, которая лежит на нас за продвижение экосистемы PHP вперёд. Повышение минимальных требований — это хорошее дело, и, на мой взгляд, его следует делать чаще и быстрее.