And Then There Was PIE
In tandem with the PECL website, which hosts around 400 packages, PHP developers have been able to install third party extensions for several decades now with the PECL installer.
PECL, which stands for the PHP Extension Community Library was a sister project to PEAR, the PHP Extension and Application Repository. This repository has largely been replaced by Packagist, which hosts PHP user land code to be installed through Composer. Unlike PEAR, Packagist allows anybody to register a library of PHP code, which can then be composed through a file (composer.json) and made available to people's application code.
For extensions written in C, PECL was the only option. The PECL website has not been properly maintained for a long while now. And there are issues where the package description and release information XML files can not even contain higher-byte characters due to a very old misconfiguration of MySQLβback when it did not support Unicode and UTF-8 properly.
Updating the website, for example for adding new releases releases, is also not the easiest thing to do. Unlike adding a Git tag as you can do with Composer packages, it requires modifying an unwieldy XML file, and uploading the packages manually through a web form.
With this in mind, about a year and a half ago, I started drafting the requirements for "New PECL". The initial goals I came up with were:
-
A new simplified installer, that does not rely on PEAR
-
Ways to configure which (already installed) PHP version should get which extension version(s)
-
Cryptographic verification of released extension tags
-
Removing the reliance on a PECL website
-
No longer relying on
package.xml
The PHP Foundation bid for funding by the Sovereign Tech Agency β an agency of the German government β to develop this new tool.
From my initial requirements, James Titcumb and others worked on a more detailed design as part of their work for the PHP Foundation. James then set to work on the installer resulting in the first pre-release last November.
Since then, the tool has matured with more features, and better integration with Packagist, which now also features PHP extensions besides public PHP packages. Many extensions, including Xdebug, can now be installed with PIE.
Documentation for PIE is available on GitHub.
Binary builds for Windows are also supported, and we have developed a GitHub action to help extension authors to do this in the right way for PIE.
PIE's feature set is fairly compatible with PECL, and now is the time to start using it in your projects. There are sometimes still a few kinks, such as a recent issue with the MongoDB extension's use of Git submodules. This is already fixed in the 0.7.0 of PIE, but more issues are likely to be encountered.
At some point in the future, the PECL website will be discontinued leaving PIE installing PHP extensions from Packagist as the only available option.
If you are an extension author, then now is the time to add support for PIE in your extension.
In most cases, this requires creating a composer.json file in the root of your GIT repository, such I have done for Xdebug, and others have done for the APCu, CSV, Imagick, and many other extensions.
If you are a user of extensions, that you currently install through PECL, then now would be a great time to start using PIE in your development environments. Only through superior testing will the new PIE installer reach maturity, and become ready to have a 1.0 release.
And then we can celebrate with an actual pie. π₯§
Likes
β€οΈ Alejandro Celaya
β€οΈ Dan Leech
β€οΈ Derick Rethans
β€οΈ dirtside
β€οΈ dseguy
β€οΈ Gina Peter Banyard
β€οΈ Grant Slater
β€οΈ Guillaume Rossolini
β€οΈ Joseph Leedy :magento:
β€οΈ MinDBreaK π΄ββ οΈ
β€οΈ Russell
Comments
@blog The real question is: When can we get a plushie elePHPant that comes with a plushie pie? :elephpant_blue: π₯§
@blog I would also like some π₯§ !
@blog Thanks a lot!
Are there any plans to skip gcc and make, e.g. directly bundle tinycc? ( https://bun.sh/blog/compile-and-run-c-in-js)
Life Line
I think this was my favourite photo of the set that I took. It's not at maximum coverage, but it does have a sun spot group (4508) just on the cusp of the terminator.
#eclipse #eclipse2026 #SolarEclipse #London #Astronomy #AstroPhotography #Photography
No totality here in London, but still had a great evening out in the local park and taking some snaps.
I did have a nice Solar Filter that I made for my lens, and had many conversations with people from different backgrounds. Kids loves to look through my filter after I was done (ran out of battery power).
More photos later...
I walked 0.9km in 9m28s
I walked 1.2km in 19m05s
Merged pull request #1100
Fixed issue #2267: Application slow when debugger is not listening onβ¦
I walked 4.7km in 48m18s
I walked 3.0km in 1h10m24s
Is there somebody who runs PHP on native windows (with Xdebug) and can run a simple script for me?
It must be in a file (`test.php`):
```
<?php
echo microtime(true), "\n";
xdebug_connect_to_client();
echo microtime(true), "\n";
```And run like:
php -dxdebug.log_level=11 -dxdebug.log=c:\temp\xdebug-i.log -dxdebug.client_host=localhost -dxdebug.client_port=9111 -dxdebug.mode=debug c:\temp\test.php
With the port 9111 not open.
Would love to see the output and log file (in a DM).
I walked 5.5km in 55m06s
@harry_wood This is this list of 100 Go-mistakes that I was talking about: https://100go.co/
Updated a crossing
I walked 2.1km in 20m08s
Enjoying my afternoon and evening out at Lords for some cricket!
I walked 3.2km in 38m54s
I walked 9.1km in 1h34m28s
Updated a gate
Updated a bakery shop
Updated a convenience shop
I walked 8.1km in 1h32m18s
I walked 5.6km in 59m13s
Updated a restaurant and a cafe; Confirmed 2 restaurants and a cafe
I walked 6.7km in 1h8m27s
I walked 4.7km in 50m02s
I got myself a sheet of Sun-safe filter material, and McGuyvered a pop-up filter for my lens.
The first attempt sort of worked, but I didn't get the filter 100% straight. Luckily I have more material.
But this is sort of my first attempt, and a few sunspots are clearly visible on the right of the image.
Warning: Never look at the Sun without protection!





Shortlink
This article has a short URL available: https://drck.me/pie1-jdu