I think there are usable parts that could be salvaged there, so here is what I think could be done here:
- Re-implement Request and Response as mutable psr message builders.
- Minimally change interface to align closer with psr requests. Eg accept psr streams as a body and use psr uri as a laminas-uri replacement.
- Focus on improving rich headers handling. Headers container should be able to initialize directly from and to apply headers directly to psr message
- Keep stdlib interfaces.
- transparently incorporate parts of laminas-psr-bridge in a more sensible and efficient way by tracking changes within builders and producing/caching new psr objects only if change was made.
- Drop Client or potentially extract into laminas-http-client if there is a value for reimplementing it under psr-18 interface
Such change might prove to be a valuable stepping stone for migrating from current laminas-http based flows to psr.