En septiembre de 2025, la comunidad PHP votó para convertir PIE, el PHP Installer for Extensions, en la vía recomendada para instalar extensiones. La prueba utilizó PIE 1.5.2, compiló una extensión real y después la desinstaló. PIE se distribuye como PHAR e instala extensiones compiladas en una instalación de PHP. Los paquetes proceden del registro de extensiones de Packagist.
pie repository:add path /path/to/pieh
pie info demo/pieh
pie install demo/piehPIE descarga el código fuente, ejecuta phpize, configure y make, copia el archivo .so resultante al directorio de extensiones de PHP y añade el ajuste extension= a la configuración. En Windows utiliza paquetes DLL precompilados, por lo que no hace falta un compilador. El cambio procede del RFC “Recommend PIE and deprecate PECL”, aprobado con 36 votos a favor, ninguno en contra y 5 abstenciones. La medida afecta a las recomendaciones y a la documentación. PECL sigue funcionando y el RFC no fija una fecha de retirada. Para eliminar la herramienta o el sitio de PECL haría falta otro RFC.
PIE requiere PHP 8.1 o posterior para ejecutarse. También puede instalar una extensión destinada a otra versión de PHP. El archivo PHAR está disponible en la página de releases de GitHub. El README documenta la verificación de la descarga con `gh attestation verify --owner php pie.phar`. El comando `pie check-build-tools` revisa el entorno local de compilación. La prueba encontró make, autoconf, pkg-config, libtool, unzip y phpize. La documentación añade git, automake, m4, gcc y el paquete de desarrollo de la versión PHP objetivo, que proporciona phpize, a los requisitos para Linux y macOS.
Los paquetes utilizan nombres con el formato vendor/package de Composer. Xdebug se identifica como `xdebug/xdebug`. Los paquetes compatibles aparecen en `packagist.org/extensions`. El binario PIE 1.5.2 también incluye comandos de búsqueda y actualización. La documentación consultada sigue remitiendo al listado de Packagist para buscar paquetes y recomienda volver a ejecutar `pie install` para actualizar. Conviene comprobar los comandos disponibles en la versión instalada.
Packagist no estaba disponible desde el entorno de prueba. Por eso se utilizó una pequeña extensión local con una función. Su `composer.json` declaraba `"type": "php-ext"`, y un repositorio de tipo path la puso a disposición de PIE. El proceso ejecutó `pie repository:add path /path/to/pieh`, `pie info demo/pieh` y `pie install demo/pieh`. PIE encontró `demo/pieh:0.1.0`, detectó la extensión proporcionada `ext-pieh`, ejecutó phpize y configure con `/usr/bin/php-config`, compiló `modules/pieh.so` e instaló el archivo en `/usr/lib/php/20230831/pieh.so` para `/usr/bin/php8.3`.
La extensión apareció en `php -m` y su función funcionó. PIE también creó un archivo en el `conf.d` de la CLI. El archivo incluía un comentario sobre la activación automática, la prioridad 80 y la línea `extension=pieh`. `pie show` informó de `pieh:0.1.0` procedente de `demo/pieh:0.1.0`. La desinstalación eliminó el archivo .so y la extensión dejó de aparecer en `php -m`, pero el archivo INI permaneció. PIE comentó la línea como `; extension=pieh ; removed by PIE`. Así se conservan posibles cambios locales. Las herramientas de configuración tendrán que eliminar el archivo sobrante si se busca un árbol limpio.
En entornos de CI no interactivos se pueden usar `--auto-install-build-tools` y `--auto-install-system-dependencies`. El README documenta también `--select`, por ejemplo `--select redis=phpredis/phpredis` para dependencias de proyecto. El patrón Docker de la documentación utiliza `php:8.4-cli`, monta PIE desde `ghcr.io/php/pie:bin` durante una fase de compilación, instala `unzip`, ejecuta `pie install --no-cache asgrim/example-pie-extension` y después elimina el paquete y los metadatos de APT. Una compilación multietapa evita que las herramientas de compilación lleguen a la imagen final.
Desde PIE 1.4.0, la herramienta puede ofrecer la instalación de herramientas de compilación que falten. Cuando hay varias instalaciones de PHP, `--with-php-config=/usr/bin/php-config8.2` y, si hace falta, un `--with-phpize-path` correspondiente permiten elegir el destino. Cada comando muestra la instalación PHP objetivo antes de pedir confirmación. El directorio de extensiones suele requerir privilegios elevados. La prueba se ejecutó como root y la documentación no proporciona instrucciones para sudo.
Un paquete de PECL debe tener metadatos compatibles con PIE y estar publicado en Packagist. Si falta, se puede contactar con su mantenedor o añadir un repositorio VCS mediante `pie repository:add vcs <url>`. Las opciones de configuración se limitan a las declaradas por la extensión. `pie info vendor/package` las muestra. Los autores necesitan `"type": "php-ext"`, o `php-ext-zend` para extensiones Zend. El bloque opcional `php-ext` puede incluir claves como `extension-name`, `configure-options`, `build-path` y `os-families`. El manifiesto de prueba también contenía nombre, licencia y requisito de PHP.
PECL no se ha eliminado en PHP 8.5. PIE se ocupa de extensiones que no vienen incluidas en PHP. Módulos integrados como mysqli y gd siguen instalándose mediante los paquetes de la distribución o con `docker-php-ext-install` en las imágenes Docker. Composer gestiona bibliotecas de proyecto. PIE gestiona extensiones compiladas dentro de la instalación de PHP.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.