У PECL з'явилася конкретна дата смерті - поки що на папері. 5 листопада Джеймс Тіткамб, автор PIE, виніс на обговорення RFC «Sunset PECL» з графіком закриття pecl.php.net: спершу банер, потім режим лише для читання, серія тимчасових вимкнень і повне закриття наприкінці 2029 року. Для всіх, у кого pecl install живе в Dockerfile, CI чи скриптах налаштування серверів, це дати, під які варто планувати перехід.
PECL і PIE коротко
PECL - старий каталог розширень PHP на C разом з однойменною утилітою: саме нею роками ставили redis, imagick, xdebug, swoole чи mongodb. PIE - його заміна від PHP Foundation: розширення там - звичайні Composer-пакети на Packagist (phpredis/phpredis, xdebug/xdebug), а сам інсталятор працює схоже на Composer. Восени 2025 року пройшло RFC про перехід на PIE і депрекейт PECL, і воно ж вимагало окремого RFC з графіком закриття. Це RFC і з'явилося.
Як PIE працює в Dockerfile і CI, ми детально розбирали в огляді PIE 1.5 - там же таблиця відповідностей команд pecl і pie. Тут не повторюватимемося.
Графік із RFC
- Понеділок, 4 січня 2027 року - на pecl.php.net з'являється банер: сайт стане лише для читання, і ось як авторам розширень перейти на PIE.
- Середа, 30 червня 2027 року - сайт повністю лише для читання. Увійти в нього вже не можна, нові випуски не завантажити.
- Вересень-грудень 2029 року - тимчасові вимкнення (brownout), щоразу довші, щоб про закриття дізналися всі, хто досі на PECL. Під них потрапляють і завантаження для Windows:
- 3 вересня - 3 години;
- 1 жовтня - 6 годин;
- 5 листопада - 24 години;
- з 3 по 6 грудня - 3 дні.
- Понеділок, 31 грудня 2029 року - сайт вимикають, а git-репозиторії утиліти й сайту PECL архівують.
Розділ про зворотну несумісність в RFC займає два речення: PECL перестане працювати, далі - тільки PIE.
Це ще не рішення
Статус RFC - Under Discussion. Голосування не призначене: дата в документі поки стоїть заглушкою, а для ухвалення знадобиться дві третини голосів. Мінімальний термін обговорення за правилами RFC у PHP - два тижні, тож проголосувати раніше другої половини листопада не вийде.
Саме обговорення в треді internals поки доброзичливе, але дати можуть зсунутися. Ровен Томмінс вважає надто довгою паузу між режимом читання і закриттям: два з половиною роки сайт роздаватиме пакети, які ніхто не зможе пропатчити, якщо в них знайдуть вразливість. Дерик Ретанс у відповідь запропонував просто скоротити цей період на рік і закрити сайт на рік раніше. Якуб Зеленка попросив згадати, що PIE є й у вигляді самостійного бінарника, тож годиться і для старих версій PHP - Тіткамб пообіцяв додати таку примітку.
Docker уже вирішив за вас
Тім Дюстерхус в обговоренні нагадав важливе: офіційні Docker-образи PHP - мабуть, головне місце, де досі вручну ставлять сторонні розширення, - прибирають PECL з PHP 8.6. Зміну злили ще в червні, тож в образах php:8.6-* команди pecl просто не буде. За його словами, кінцева дата з RFC збігається з кінцем підтримки PHP 8.5 - останньої версії, де pecl ще є в образі.
Тобто для більшості проєктів на Laravel реальний дедлайн - не 2029 рік, а перехід на PHP 8.6. Рядок на кшталт
RUN pecl install redis && docker-php-ext-enable redis
на новому образі впаде. Замість нього PIE можна підключити тільки на час збірки, з його бінарного образу, не копіюючи у фінальний образ:
RUN --mount=type=bind,from=ghcr.io/php/pie:bin,source=/pie,target=/usr/local/bin/pie \
pie install phpredis/phpredis
PIE сам увімкне розширення через docker-php-ext-enable. Врахуйте, що йому, як і Composer, потрібен unzip або розширення zip; приклад повного Dockerfile є в документації PIE. Чи переїхало потрібне вам розширення, видно в каталозі розширень на Packagist.
Що робити авторам розширень
Головна дата для вас - 30 червня 2027 року: після неї нового випуску на PECL не опублікувати. Перехід описаний у посібнику для мейнтейнерів і зводиться до кількох кроків:
- додати в репозиторій
composer.json з type: php-ext (або php-ext-zend для Zend-розширень) і назвою у форматі vendor/package;
- опублікувати пакет на Packagist - далі випуском стає звичайний git-тег,
package.xml з переліком випусків більше не потрібен;
- для Windows прикладати до випусків зібрані DLL: PIE на Windows нічого не компілює, а бере готові бінарники.
Що зробити зараз
- Пошукайте
pecl у Dockerfile, конфігах CI, Ansible-ролях і скриптах налаштування серверів - так видно весь масштаб робіт.
- Міняйте
pecl install на pie install разом з переходом на PHP 8.6, а не окремим проєктом у 2029-му: Docker-образи все одно змусять.
- Перевірте, що всі потрібні розширення вже є на Packagist. Якщо якогось немає, відкрийте issue в його репозиторії зараз - до 30 червня 2027 року в автора ще є запас часу.
- Стежте за голосуванням: якщо пропозицію Ретанса приймуть, кінцева дата може зсунутися на кінець 2028 року.