An all star cast this episode, as Ben and Phil are joined by regular guest Anthony Ferrara - thinker of good ideas and long-time part-time side-line contributor to the PHP-FIG, Woody Gilk - one-speed rider & BDFL of Kohana, and Beau Simensen - author of a bunch of stuff including StackPHP.
Here we’re talking about some awesome stuff the PHP-FIG is working on: PSR-15 (HTTP Middleware). This PSR is in Draft mode, and is potentially not as well known about as some others. There was a bit of a cuffufle getting it started as before it had even passed an entrance vote there were alternatives and rewrites suggested, but now the major players are on the same page and things are moving forward.
We discuss all this, and the reason PSR-7 (HTTP Message) is not enough for the ecosystem to benefit from shareable middleware. Jumping away from PSR-15 for a second there is an interesting bit of insight into why the PHP-FIG didn’t just slap a “PSR” sticker on Symfony’s HTTP Kernel or HTTP Foundation.
Woody provides a bit of the decision-making process in a very tricky aspect of the FIGs job, which is: should standards be built entirely to match existing implementations, or should standards try to improve on the learnings of the existing implementations to better them all as implementations change to support the standard. It’s all a bit chicken and egg, but a very worthy discussion to have.
- All About Middleware - Anthony posts about PHP HTTP Middleware
- Why Care About PHP Middleware? - Summary of the initial Anthony vs Woody approaches and background on the HTTP middleware concept
- StackPHP - Composing HttpKernelInterface middlewares since 2013!
- Equip - Equip is a tiny and powerful PHP micro-framework created and maintained by the engineering team at When I Work
If you want to listen to the audio version (which might have actually been edited a bit and have better sound quality) then subscribe to our podcast RSS feed in iTunes or whichever podcast app you use.
Alternatively, feel free to listen to download this episode, or listen in-browser: