Статистика версий PHP - выпуск 2021.1

Статистика версий PHP - выпуск 2021.1

Статистика использования PHP

Первая ежегодная статистика 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.49,88% (+3,18)

 8.02,15% (+1,96)

 8.10% (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, вам действительно стоит подумать об обновлении!



Сергей Мухин

Веб-разработчик со стажем программирования более 6 лет, постоянно учусь, люблю делать новые проекты.

Есть вопросы?

Я почти всегда в режиме онлайн

Связаться со мной