Standards
Standards are the reason the stack contains no third-party implementations and still works with everybody else's code. A response here is a PSR-7 response, so anything that speaks PSR-7 speaks to it — including the parts you write yourself, and including whatever you would rather use instead of the package it came from.
Implemented
| Standard | What it covers | Packages |
|---|---|---|
| PSR-3 | Logger | logger, queue, framework |
| PSR-7 | HTTP messages | uri, stream, header-bag, server-request, response, router, http-client, auth |
| PSR-11 | Container | di, middleware, cli, queue |
| PSR-14 | Event dispatcher | events |
| PSR-15 | HTTP handlers and middleware | middleware, auth, framework |
| PSR-16 | Simple cache | cache, framework |
| PSR-17 | HTTP factories | uri, response, server-request, http-client |
| PSR-18 | HTTP client | http-client |
| PSR-20 | Clock | clock, cache, queue |
PSR-1 and PSR-12 are followed throughout, checked by StyleCI on every push. PSR-4 is how every package autoloads.
Not implemented
PSR-6 (caching interfaces) is not implemented anywhere. The cache is PSR-16 only, which is the simpler of the two and the one an application usually wants; if you need PSR-6, wrap it.
What that is worth
Every package here can be swapped for somebody else's implementation of the same standard, and every package here can be dropped into somebody else's application. That is the point of building on interfaces rather than on a framework: nothing in this stack is load-bearing because it is ours.