Статистика версий PHP - выпуск 2021.1
Первая ежегодная статистика 2021 используемых версий PHP от Packagist
Небольшое замечание по методологии сбора статистики - следует понимать, что данная статистика несовершенна, поскольку она просто представляет собой образец некоторого подмножества пользовательской базы PHP. Для ее составления, в журналах packagist.org анализируется есть ли кем-то установленный Composer за последний месяц. В свою очередь Composer отправляет версию PHP, с которой он работает, в заголовке User-Agent, поэтому Packagist может использовать эту информацию, чтобы увидеть с какими версиями PHP люди используют Composer. Среды CI исключаются из соображений максимальной эффективности.
Статистика использования PHP
Май 2021 г.
Версия | Сгруппированы | +/- разница с ноября 2020 г. | |||
PHP 7.4.16 | 13.26% | PHP 7.4 | 45.92% (+3.31) | ||
PHP 7.3.27 | 8.46% | PHP 7.3 | 21.30% (-5.75) | ||
PHP 7.4.9 | 6.38% | PHP 7.2 | 12.89% (-2.39) | ||
PHP 8.0.3 | 6.31% | PHP 8.0 | 9.44% (+9.17) | ||
PHP 7.2.34 | 5.46% | PHP 7.1 | 5.21% (-2.24) | ||
PHP 7.4.15 | 4.89% | PHP 7.0 | 2.07% (-0.63) |
Как можно заметить 7.4 продолжает расти, несмотря на то, что процент его использования итак высок , в то время как PHP 8 хоть и работает нормально, но скорость его принятия составляет лишь половину от предыдущих выпусков 7.x. По моему опыту, обновление до него определенно сложнее, чем обновление до второстепенного выпуска, в основном из-за того, что некоторые зависимости отстают в поддержке PHP 8, но оно того стоит, так что я бы советовал людям скорее продвигаться вперед на следующую версию!
Вы можете легко выполнить базовый тест на предмет того, поддерживают ли ваши зависимости PHP 8, используя конфигурацию платформы Composer, запустив, например:
composer config platform.php 8.0.5
# Checks whether latest versions of your dependencies (according to your
# version constraints) allow PHP 8
composer update --dry-run
# Checks whether current versions of your deps allow PHP 8
composer update nothing --dry-run
Если это пройдет, вы можете попробовать выполнить обновление без него с помощью --dry-run и запустить свой набор тестов. Если вы получаете ошибки, вам может потребоваться проверить, существует ли новая версия для этих зависимостей, или отправить создателям пакетов PR/issue о поддержке PHP 8.
Не забудьте вернуть изменения composer.json, когда закончите данные тесты. Вот сводная диаграмма, охватывающая все наблюдения версий за последние семь лет.
Требования PHP в пакетах
Второй набор данных - это то, какие версии требуются для пакетов PHP, представленных на Packagist.org. Проверяется только выражение require в их текущей ветке по умолчанию, чтобы узнать каковы требования, а набор данных включает только пакеты, которые были зафиксированы в прошлом году, чтобы исключить все проекты EOL, поскольку они не обновляют свои требования.
Требования PHP - последние ветки по умолчанию - май 2021 г. (+/- разница с ноября 2020 г.)
5.2 | 0,54% (-0,06) | |
5.3 | 6,4% (-1) | |
5.4 | 6,68% (-0,99) | |
5.5 | 6,19% (-0,39) | |
5.6 | 9,34% (-1,2) | |
7.0 | 13,75% (-1,44) | |
7.1 | 18,43% (-1,95) | |
7.2 | 16,95% (-0,72) | |
7.3 | 9,67% (+2,59) | |
7.4 | 9,88% (+3,18) | |
8.0 | 2,15% (+1,96) | |
8.1 | 0% (0) |
Как и в прошлый раз, версии 7.3/7.4 продолжают набирать обороты, PHP 8 также имеет неплохой старт. Однако самой используемой версией PHP по-прежнему является 7.1. Согласно приведенным выше диаграммам, я бы сказал, что 7.3 по-прежнему является хорошим вариантом для любой библиотеки, которая хочет поддерживать поддержку большинства пользователей, но 7.4 предлагает вам приятные функции и почти на 50% адаптирована, так что это допустимый вариант для нового кода. Процент использование PHP 8 все еще слишком низкий, и вероятно, останется таковым до выпуска Ubuntu 22.04.
Требование PHP 7.2+ охватывает ~ 90% пользовательской базы прямо сейчас, поэтому требовать меньшей версии уже больше нет необходимости, Composer 2.2, выходящий позже в этом году, скорее всего, потребует этого. Кстати, если вы не используете Composer 2, вам действительно стоит подумать об обновлении!
Что думаешь?