NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #5 most downloaded on Packagist
PSR-7 message implementation that also provides common utility methods
Last release 1 months ago
24 Aug 2026
Release timing varies
gaps range from 8 days to 8 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
71 releases · first in 2015
Reverted BC break to Uri::resolve and Uri::removeDotSegments by removing calls to trigger_error when deprecated methods are invoked.
Uri::resolve and Uri::removeDotSegments by removing
calls to trigger_error when deprecated methods are invoked.Rriggering of silenced deprecation warnings.
One column per quarter.
Deprecated Uri::resolve in favor of UriResolver::resolve
Stream::read when length parameter <= 0.copy_to_stream reads bytes in chunks instead of maxLen into memory.ServerRequest::getUriFromGlobals when Host header contains port.ServerRequest::getUriFromGlobals returns a URI in absolute form.parse_response to parse a response without delimiting space and reason.(new Uri)->withPath('foo')->withHost('example.com') will throw an exception
because the path of a URI with an authority must start with a slash "/" or be empty(new Uri())->withScheme('http') will return 'http://localhost'file scheme and empty host.Uri::isDefaultPortUri::isAbsoluteUri::isNetworkPathReferenceUri::isAbsolutePathReferenceUri::isRelativePathReferenceUri::isSameDocumentReferenceUri::composeComponentsUriNormalizer::normalizeUriNormalizer::isEquivalentUriResolver::relativizeUri::resolve in favor of UriResolver::resolveUri::removeDotSegments in favor of UriResolver::removeDotSegmentsUri::isDefaultPortUri::isAbsoluteUri::isNetworkPathReferenceUri::isAbsolutePathReferenceUri::isRelativePathReferenceUri::isSameDocumentReferenceUri::composeComponentsUriNormalizer::normalizeUriNormalizer::isEquivalentUriResolver::relativizeServerRequest::getUriFromGlobals returns a URI in absolute form.parse_response to parse a response without delimiting space and reason.(new Uri)->withPath('foo')->withHost('example.com') will throw an exception
because the path of a URI with an authority must start with a slash "/" or be empty(new Uri())->withScheme('http') will return 'http://localhost'Uri::resolve in favor of UriResolver::resolveUri::removeDotSegments in favor of UriResolver::removeDotSegmentsStream::read when length parameter <= 0.copy_to_stream reads bytes in chunks instead of maxLen into memory.ServerRequest::getUriFromGlobals when Host header contains port.file scheme and empty host.Fix Uri::__toString for network path references, e.g. //example.org.
Uri::__toString for network path references, e.g. //example.org.'0' in a lot of places,
e.g. as a user info password.Uri::withAddedHeader to correctly merge headers with different case.Uri::withAddedHeader. Header values may
be surrounded by whitespace which should be ignored according to RFC 7230
Section 3.2.4. This does not apply to header names.Uri::withAddedHeader with an array of header values.Uri::resolve when base path has no slash and handling of fragment.Uri::with(out)QueryValue so one can pass the
key/value both in encoded as well as decoded form to those methods. This is
consistent with withPath, withQuery etc.ServerRequest::withoutAttribute when attribute value is null.Uri::__toString for network path references, e.g. //example.org.'0' in a lot of places,
e.g. as a user info password.Uri::withAddedHeader to correctly merge headers with different case.Uri::withAddedHeader. Header values may
be surrounded by whitespace which should be ignored according to RFC 7230
Section 3.2.4. This does not apply to header names.Uri::withAddedHeader with an array of header values.Uri::resolve when base path has no slash and handling of fragment.Uri::with(out)QueryValue so one can pass the
key/value both in encoded as well as decoded form to those methods. This is
consistent with withPath, withQuery etc.ServerRequest::withoutAttribute when attribute value is null.Added remaining interfaces needed for full PSR7 compatibility (ServerRequestInterface, UploadedFileInterface, etc.).
Fixed support in GuzzleHttp\Psr7\CachingStream for seeking forward on remote streams, which can sometimes return fewer bytes than requested with fread
GuzzleHttp\Psr7\CachingStream for seeking forward on remote
streams, which can sometimes return fewer bytes than requested with fread.Added support for URIs without any authority.
Now supporting negative offsets when seeking to SEEK_END.
Body as "0" is now properly added to a response.
"0" is now properly added to a response.parse_request.multipart/form-data headers are now overridden case-insensitively.
multipart/form-data headers are now overridden case-insensitively.Psr\Http\Message\ServerRequestInterface
Initial release.
Currently unsupported:
Psr\Http\Message\ServerRequestInterfacePsr\Http\Message\UploadedFileInterfaceYour coding agent can read these notes before it upgrades. Set up the MCP server →