Ми повертаємося з черговим оглядом популярності версій PHP у спільноті. Попередній звіт можна знайти тут, а в цьому пості ми також розглянемо історичну динаміку.
Традиційне застереження: я працюю з доступними мені даними. Ці графіки не є на 100% точним відображенням усієї PHP-спільноти, проте вони чітко показують стан справ в одній із найважливіших її частин — екосистемі Packagist.
Подивимося, що змінилося за останні пів року, і як спільнота переходить на PHP 8.4 за шість місяців після релізу.
Статистика використання
Почнемо з частки версій PHP, які використовуються сьогодні. Я виключив усі версії, чий показник не досягає 1%:
| Версія | 2024-01 | 2024-07 | 2025-01 | 2025-06 |
| 7.2 | 2.5% | 2.0% | 1.6% | 1.6% |
| 7.3 | 3.2% | 1.9% | 1.5% | 1.4% |
| 7.4 | 13.6% | 10.2% | 7.6% | 6.9% |
| 8.0 | 7.2% | 5.4% | 3.4% | 3.3% |
| 8.1 | 35.2% | 26.1% | 18.1% | 13.4% |
| 8.2 | 29.4% | 32.3% | 28.6% | 24.8% |
| 8.3 | 6.4% | 19.9% | 32.7% | 34.0% |
| 8.4 | 0.0% | 0.0% | 5.1% | 13.7% |
Візуалізація цих даних виглядає наступним чином:
Еволюція використання версійПривертає увагу те, що PHP 8.4 впроваджується трохи повільніше за попередні релізи: лише 13.7% через пів року після виходу:
| Версія | Популярність через 6 місяців |
| 8.0 | 15.0% |
| 8.1 | 21.6% |
| 8.2 | 15.6% |
| 8.3 | 16.7% |
| 8.4 | 13.7% |
Я міркував, чому PHP 8.4 демонструє таку динаміку. Адже PHP 8.4 — це дуже цікавий реліз із такими функціями, як property hooks, new без дужок та asymmetric visibility. Можливо, саме в цьому і причина: занадто багато нових «фішок» одночасно можуть спантеличити розробників.
Втім, це навряд чи вся правда. Під час лайвстріму користувачі зазначили, що головною перепоною є відсутність підтримки з боку QA-інструментів. Наприклад, робота над підтримкою PHP 8.4 у PHP CS Fixer все ще триває і просувається досить повільно. PHPStan також знадобився певний час для адаптації.
Крім того, на ситуацію впливають open source пакети, але про них ми поговоримо окремо. Спочатку глянемо на загальний графік еволюції PHP за весь час:
Повна історія змінМінімальні вимоги версій
Цікаво проаналізувати мінімальну необхідну версію для 1000 найпопулярніших пакетів на Packagist. Це чудовий індикатор того, як активно open source спільнота штовхає екосистему вперед. Докладніше про ці цифри я розповів у своєму відео.
Зауважте: я перейшов з аналізатора Нікіти Попова на новий інструмент Адріана. Він значно швидший, хоча можуть бути невеликі розбіжності у парсингу версій. Оскільки аналізатор Адріана базується на парсері самого composer, нові дані можна вважати максимально точними.
Ще два нюанси:
- Це таблиця мінімальних вимог. Тобто пакет, що вимагає версію 8.0, може чудово працювати на 8.1, 8.2, 8.3 та 8.4.
- Загальна кількість пакетів може дещо відрізнятися рік до року, оскільки не всі вказують коректний рядок версії.
| Версія | 2024-01 | 2024-07 | 2025-01 | 2025-06 |
| 5.3 | 58 | 50 | 52 | 28 |
| 5.4 | 28 | 26 | 26 | 39 |
| 5.5 | 16 | 15 | 15 | 7 |
| 5.6 | 30 | 29 | 31 | 18 |
| 7.0 | 24 | 24 | 25 | 27 |
| 7.1 | 100 | 93 | 101 | 71 |
| 7.2 | 123 | 118 | 123 | 87 |
| 7.3 | 49 | 42 | 45 | 59 |
| 7.4 | 87 | 80 | 81 | 95 |
| 8.0 | 126 | 123 | 128 | 106 |
| 8.1 | 154 | 184 | 194 | 234 |
| 8.2 | 135 | 153 | 171 | 187 |
| 8.3 | 0 | 4 | 4 | 26 |
| 8.4 | - | - | 0 | 0 |
Для наочності порівняємо ці дані на графіку:
Мінімальні вимоги PHP у динаміціМої висновки залишаються незмінними: понад 50% топових пакетів все ще підтримують версії PHP, які давно застаріли й не отримують оновлень безпеки. Спільнота лише виграє, якщо розробники пакетів почнуть агресивніше переходити виключно на актуальні версії.
Це непроста тема, яку я детально розібрав у згаданому відео:
Такий стан справ на сьогодні. Мені завжди цікаво почути вашу думку — пишіть на пошту або заглядайте у надій Discord.