PIE - Composer для PHP-расширений, которого мы так долго ждали
Сколько раз вы ловили себя на мысли, что установка PHP-расширений — это настоящий квест? Найти нужные зависимости, разобраться с pecl, скомпилировать из исходников, а потом еще и правильно прописать все в php.ini. Особенно «весело» становится, когда нужно настроить окружение для нового коллеги или в CI/CD пайплайне. Знакомая ситуация? Кажется, этой головной боли скоро придет конец. Встречайте — PIE (PHP Installer for Extensions).
Это не просто очередной инструмент, а официальный проект от команды PHP, который призван стать современным преемником старого-доброго PECL. Давайте разберемся, что это за «пирог» и почему его стоит попробовать уже сегодня.
Что такое PIE и зачем он нужен?
Если коротко, PIE — это менеджер PHP-расширений, работающий по принципу Composer. Вы ведь используете Composer для управления PHP-пакетами в своем проекте? PIE делает то же самое, но для расширений самого PHP — модулей, которые подключаются на уровне интерпретатора (вроде xdebug, imagick или redis).
Главная идея PIE — сделать процесс установки и управления расширениями таким же простым и декларативным, как управление зависимостями проекта. Он распространяется в виде простого phar-архива, который можно скачать и сразу использовать. Никаких сложных установок и зависимостей.
Самое важное: за проектом стоит The PHP Foundation. Это значит, что у PIE есть все шансы стать новым стандартом в экосистеме PHP.
Ключевые возможности: как PIE облегчает жизнь?
Давайте перейдем от слов к делу и посмотрим, что конкретно предлагает PIE.
1. Установка в стиле Composer
Забудьте о командах pecl install или ручной компиляции. С PIE установка расширения выглядит до боли знакомо:
pie install example/example-pie-extension
Инструмент сам найдет пакет на Packagist Extensions, скачает нужную версию, скомпилирует (если нужно) и установит. Все происходит в одну команду, прямо как с Composer.
2. Автоматическая настройка для всего проекта
А вот это — настоящая магия и, пожалуй, главная фича PIE. Представьте, вы клонируете новый проект. Ваши действия? Обычно это composer install. А что, если я скажу, что теперь достаточно добавить еще одну команду, и все необходимые PHP-расширения установятся сами?
Просто запустите pie install в корне проекта:
$ pie install
🥧 PHP Installer for Extensions (PIE), 0.9.0, from The PHP Foundation
...
Checking extensions for your project your-vendor/your-project
requires: curl ✅ Already installed
requires: intl ✅ Already installed
requires: json ✅ Already installed
requires: example_pie_extension ⚠️ Missing
The following packages may be suitable, which would you like to install:
[0] None
[1] asgrim/example-pie-extension: Example PIE extension
> 1
...
> ✅ Extension is enabled and loaded in /usr/bin/php8.3
PIE просканирует composer.json вашего проекта, найдет все зависимости в секции require, которые начинаются с ext-, проверит, какие из них отсутствуют в вашей системе, и предложит их установить! Это кардинально меняет подход к настройке рабочего окружения.
3. Умная работа с разными ОС
Команда PIE позаботилась о том, чтобы инструмент работал одинаково удобно и на Linux, и на Windows.
- На Linux он автоматически выполнит всю грязную работу: запустит
phpize,configure,makeиmake install. Вам понадобится лишь стандартный набор для сборки (gcc,makeи т.д.). - На Windows все еще проще. PIE знает, что расширения для Windows поставляются в виде готовых
.dllфайлов, поэтому он просто скачает нужный скомпилированный пакет. Никакихbuild toolchainне требуется.
При этом команда для разработчика остается одной и той же: pie install ....
4. Полезные подсказки и автоматизация
После установки расширения PIE не бросает вас на полпути. Он четко указывает, что нужно сделать дальше:
Install complete: /usr/lib/php/20230831/example_pie_extension.so
You must now add "extension=example_pie_extension" to your php.ini
Более того, в свежих версиях он даже может попытаться включить расширение самостоятельно, что еще больше снижает риск человеческой ошибки.
Практические сценарии: где PIE пригодится больше всего?
- Быстрый старт для новых разработчиков. Новый человек в команде? Теперь ему не нужно читать длинные инструкции по настройке окружения.
git clone,composer install,pie install— и можно приступать к работе. - Стандартизация CI/CD. Вместо сложных многострочных команд в вашем
Dockerfileили.gitlab-ci.ymlдля установки каждого расширения, теперь достаточно одной командыpie install. Это делает пайплайны чище, надежнее и проще в поддержке. - Локальная разработка. Если вы работаете над несколькими проектами с разными требованиями к расширениям, PIE поможет быстро переключаться между ними, доустанавливая только то, что необходимо для конкретного проекта.
Пора ли прощаться с PECL?
PIE — проект молодой, он появился только в 2024 году. Конечно, экосистема расширений, поддерживающих его, пока только растет. PECL существует десятилетиями, и его репозиторий огромен.
Однако PIE предлагает современный, удобный и унифицированный подход, который идеально вписывается в современную PHP-разработку рядом с Composer. Учитывая, что за ним стоит официальная команда PHP, можно с уверенностью сказать — будущее за PIE. Переход будет постепенным, но начинать присматриваться и использовать его в новых проектах стоит уже сейчас.
PIE — это глоток свежего воздуха в управлении PHP-расширениями. Он берет лучшие идеи от Composer и применяет их к системным зависимостям PHP, решая множество старых проблем. Простота, автоматизация на основе composer.json и кроссплатформенность делают его невероятно мощным инструментом.
Если вы устали от ручной компиляции и хотите сделать процесс настройки окружения предсказуемым и быстрым, обязательно дайте шанс php/pie. Возможно, это именно тот инструмент, которого вы так долго ждали.
