- Fix
Stream::read
when length parameter <= 0. copy_to_stream
reads bytes in chunks instead ofmaxLen
into memory.- Fix
ServerRequest::getUriFromGlobals
whenHost
header contains port. - Ensure
ServerRequest::getUriFromGlobals
returns a URI in absolute form. - Allow
parse_response
to parse a response without delimiting space and reason. - Ensure each URI modification results in a valid URI according to PSR-7 discussions.
Invalid modifications will throw an exception instead of returning a wrong URI or
doing some magic.(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'
- Fix compatibility of URIs with
file
scheme and empty host. - Added common URI utility methods based on RFC 3986 (see documentation in the readme):
Uri::isDefaultPort
Uri::isAbsolute
Uri::isNetworkPathReference
Uri::isAbsolutePathReference
Uri::isRelativePathReference
Uri::isSameDocumentReference
Uri::composeComponents
UriNormalizer::normalize
UriNormalizer::isEquivalent
UriResolver::relativize
- Deprecated
Uri::resolve
in favor ofUriResolver::resolve
- Deprecated
Uri::removeDotSegments
in favor ofUriResolver::removeDotSegments