As Matthew Weier O'Phinney has posted, the PSR-7 PHP-FIG proposal is in the voting stages. The PSR-7 standard defines a unified interface for working with HTTP requests and responses.
As of a short bit ago, PSR-7 (meta) — HTTP Message Interfaces — is now in the voting phase! If you are a voting member of PHP-FIG, I urge you to read the specification and meta document now, and cast your vote accordingly.
I have written previously on the need for HTTP message abstractions, and also detailed how PSR-7 works. Those posts are still valid (I've kept the latter updated with all changes!). Since the review period, my sponsors and I have been looking over feedback and comments to see if any changes were needed. Fortunately, we've not found any substantive changes were really necessary; we have, however, made a few clarifications.
He clarifies some things around:
- why base path concerns are not represented in the ServerRequestInterface or UriInterface
- a note that UriInterface::getPath() MUST return the string "/" if the path is empty
- that UriInterface implementations MUST percent-encode reserved characters in paths and query strings, per RFC 3986
- why StreamableInterface is mutable, and provided guidelines to implementors and consumers regarding how and when to use writable streams
- the addition of several sections to the meta documentation detailing solutions to common stream-based concerns
He also gets into a bit more detail about streams, base paths and some of the overall outcomes if the PSR-7 proposal passes (which it looks like it will so far).
If you adopt PSR-7, will you need to change your code? Almost certainly. The goal of PHP-FIG is to improve interoperability between projects, and PSRs typically attempt this via codification of what member projects are already doing.