PIE (PHP Installer for Extensions)
Last updated on by Yannick Lyn Fatt
PHP comes with quite a number of core extensions already included, and some additional extensions can be installed through an OS package manager, such as Apt, Yum, Homebrew, etc, on Linux and MacOS or as precompiled binaries on Windows. However, sometimes, you need to install other extensions that might still need to be precompiled and available via those options. In those instances, you would need to utilize something like PECL or compile the extension manually from the source.
The PHP Foundation has recently introduced a pre-release of the PHP Installer for Extensions (PIE). PIE aims to simplify managing PHP extensions by providing a modern, flexible alternative to PECL and treating extensions as first-class citizens in the PHP ecosystem.
The whole point of this project is to help make the process of managing PHP extensions more streamlined. Now, extensions can be distributed via Packagist, just like regular PHP packages! As a result, the installation and update process of extensions will be quite familiar to developers who already use Composer.
Note that as of the writing of this article, this project is still in active development, and there is an initial pre-release that is stable and available as a PHAR download. You will also need PHP 8.1 or newer to run PIE, but PIE can install an extension to any installed PHP version. The PHP Foundation is inviting developers to try it and share feedback.
Assuming you have moved pie.phar
into your $PATH
, e.g. /usr/local/bin/pie
on non-Windows systems, you can install your extension with:
pie install <vendor>/<package> # for example:pie install xdebug/xdebug
If you are an extension author, your extensions will need to be made compatible with PIE by adding a composer.json
file and publishing it on Packagist. Further instructions have been shared on how to make your packages compatible. Once that is followed, it will appear on the Packagist Extensions list page.
To learn more about this tool, you can read the usage docs and view the source code at the official PIE Github repository.