Итак первый отчет в этом году об используемых версий в PHP
Предыдущее издание можно прочитать здесь.
Как всегда, важно отметить, что я работаю с публично доступными всем данными. Это означает, что эти диаграммы не являются 100% точным представлением сообщества PHP в целом, но они являются точным представлением одной из самых важных частей PHP: экосистемы Packagist.
Статистика использования
Давайте начнем с процента используемых сегодня версий PHP, и сравним его с предыдущими тремя изданиями, обратите внимание, что я пропустил все версии, которые не используются более чем на 1%:
Версия | июль 2021 % | январь 2022 % | июль 2022 % | январь 2023 % |
8.2 | 0,0 | 0,0 | 0,0 | 4,7 |
8.1 | 0,1 | 9,1 | 24,5 | 38,8 |
8.0 | 14,7 | 23,9 | 20,6 | 16,2 |
7.4 | 46,8 | 43,9 | 38,4 | 27,7 |
7.3 | 19,2 | 12,0 | 8,0 | 5,3 |
7.2 | 10,4 | 6,6 | 5,1 | 4,3 |
7.1 | 3,8 | 2,4 | 1,9 | 1,8 |
Визуализация этих данных выглядит так:
Мы видим приличный рост версий PHP 8.*, и думаю это отличная новость! Также приятно видеть, что использование PHP 8.0 уже сокращается: в конце прошлого года PHP 8.0 перешел в режим только исправлений безопасности, и я надеюсь, что в этом году его использование сократится еще больше. Имейте в виду, что поддержка PHP 8.0 прекратит свое существование 26 ноября 2023 года. Поэтому крайне важно, чтобы ваши проекты начали подготовку к обновлению в ближайшие месяцы.
Версия PHP 7.4 подошла к концу в прошлом году, поэтому в то же время вызывает беспокойство тот факт, что более 25% проектов все еще используют ее! Будем надеяться, что вскоре это число сократится.
Эти данные прекрасно отображают разделение внутри PHP-сообщества: одна часть идет в ногу с современным PHP, а другая остается беспомощно позади. Я знаю, что есть много причин делать это - часто из-за бизнес-требований и ограничений - но очень важно понимать, что из-за этого многие PHP-проекты на самом деле работают в более небезопасных и медленных версиях.
На обзорной диаграмме за все время, вы можете увидеть эволюцию использования версий с течением времени:
Как я уже сказал: снижение версии 7.4 происходит слишком медленно, как по мне. Сравните это с гораздо более резким спадом PHP 5.5 в 2015 году, когда был выпущен PHP 7.0: мне бы хотелось, чтобы то же самое произошло и с PHP 7.4 и чтобы люди уже перешли на PHP 8.0, но, к сожалению, это не так.
Мне кажется, что я повторяюсь каждый год, но я очень надеюсь, что в будущем люди обновят свои проекты ка можно раньше. Мне любопытно узнать, как можно помочь этой части PHP-сообщества. Например, такие инструменты, как Rector, для автоматизации обновлений имеют такой большой потенциал, если бы люди начали их использовать.
Требуемые версии
Затем используя анализатор популярных пакетов Никиты Попова, чтобы загрузить 1000 самых популярных пакетов композитора и использовав небольшой скрипт, чтобы получить их минимальную требуемую версию были получены результаты:
Версия | июль 2021 | январь 2022 | июль 2022 | январь 2023 |
8.2 | - | - | - | - |
8.1 | - | - | 125 | 129 |
8.0 | 117 | 160 | 94 | 103 |
7.4 | 56 | 69 | 86 | 98 |
7.3 | 133 | 116 | 104 | 106 |
7.2 | 142 | 133 | 130 | 144 |
7.1 | 182 | 190 | 153 | 159 |
7.0 | 31 | 29 | 29 | 30 |
5.6 | 61 | 49 | 42 | 43 |
5.5 | 43 | 42 | 35 | 37 |
5.4 | 41 | 43 | 40 | 40 |
5.3 | 97 | 83 | 77 | 78 |
5.2 | 12 | 10 | 10 | 10 |
Здесь необходимо сделать два важных замечания.
В этой таблице указана минимальная требуемая версия. Логично, что ни один из 1000 пакетов еще не поддерживает PHP 8.2, так как он вышел совсем недавно.
Если вы посмотрите даты, вы заметите, что между каждым годом есть некоторые различия. Не для каждого пакета указана версия, поэтому не все 1000 пакетов можно проанализировать.
Вместо того, чтобы сравнивать абсолютные числа, лучше нанести эти данные на диаграмму для относительного сравнения, чтобы мы могли видеть изменения с течением времени:
Вы можете видеть небольшое увеличение требований PHP 7.*. Это хорошая эволюция, но все же очень медленная по сравнению с тем, как быстро движется вперед PHP.
На мой взгляд, авторы пакетов должны настаивать на том, чтобы требовались только поддерживаемые версии PHP. Я думаю, что это единственный способ для PHP двигаться вперед с приличной скоростью, а для сообщества - не отставать. Вдобавок ко всему: ежегодные обновления гораздо проще делать, чем, например, оставаться на PHP 7.4 и пытаться сразу перейти на PHP 8.2.
В заключение, если вы что-то почерпнете из этого поста, я надеюсь, что это то что пришло время обновиться как минимум до PHP 8.1, а лучше до PHP 8.2. Это не так сложно, как вы думаете, и определенно стоит вашего времени .
Что думаешь?