guzzlehttp/psr7
PSR-7 HTTP message implementation for PHP: request, response, URI, uploaded file, and stream objects compatible with Guzzle and any PSR-7 library. Create or inspect messages without sending requests; includes factories and helpers.
InflateStream ignoring source read failures that follow decoded bytesAppendStream discarding bytes read before a timeoutUtils::redactUriForMessage() and Utils::redactUriStringForMessage() for URI diagnostics./ instead of throwing/. prefix for authority-less // paths to percent-encoding normalizations as wellfile host strands a // path, prefixing it with /../ instead of throwingDiagnosticValue::escape() to escape controls and malformed UTF-8 in diagnosticsGuzzleHttp\Psr7\Exception\TimeoutException for timed-out stream operationsGuzzleHttp\Psr7\Utils::redactUserInfoInString() to redact the userinfo of a raw URI string within textGuzzleHttp\Psr7\Rfc3986 to public API with isValid*() predicates and canonicalizeIpv6()GuzzleHttp\Psr7\UriNormalizer::CANONICALIZE_IPV6_HOST to PRESERVING_NORMALIZATIONSpsr/http-message:^2.0 and add native parameter and return typespsr/http-factory:^1.1ServerRequest::fromGlobals() still uppercasestmp_name, size, or errorerror valuesUploadedFile::moveTo()read() lengths across all stream implementations+ flag anywhere in a mode for Stream::isReadable()/isWritable()PumpStream source callablesPumpStream close and detachMessage::bodySummary()null for the Message::bodySummary() truncation length to use the defaultLimitStream offset/limit and track non-seekable offset by bytes skippedFnStream close and detach terminal, calling close callbacks at most onceFnStream close callbacks during destructor cleanupCachingStream::close() idempotent, preserving remote cleanup after detachCachingStream cursor when a SEEK_END target on an unknown-size stream is rejectedUri::getPath() and origin-form request targetsfile URIs with rootless paths without the // separatorfile URIs with empty paths as file: instead of the unparseable file://// paths with /.UriResolver::relativize() when an empty-path target requires oneUriResolver::relativize() when it would inherit the base fragmentUriResolver::relativize() when an equal-path target's last path segment contains a colonUri::fromParts() ports instead of casting themws and wss schemesws and wss default ports in UriComparator::isCrossOrigin() port comparisonsUtils::redactUserInfo()$_SERVER by REQUEST_METHOD, using target authority before SERVER_PORTREQUEST_URI targets in ServerRequest::fromGlobals()HTTP_HOST and malformed SERVER_PORT in ServerRequest::getUriFromGlobals()REQUEST_METHOD and SERVER_PROTOCOL server values in ServerRequest::fromGlobals()Host and normalize leading-zero ports in Message::parseRequest()Host headers and validate present values for all request-target formsMessage::parseRequest()Host header in Request::withUri() when the URI changes or Host is emptyHost headers synthesized by Message::toString()Message::toString() from the request URIHost headers set by Utils::modifyRequest() URI changesOPTIONS * and CONNECT authority-form request targets in Message::parseRequest()Request::withRequestTarget()Utils::streamFor()Query::build()Query::build() and MultipartStream contentsUtils::streamFor()Utils::streamFor() now rejects non-string scalar bodiesUri::withQueryValues() now rejects non-string valuesUtils::modifyRequest() change valuesUtils::copyToStream() to throw when destination streams cannot make progressTimeoutException from Stream read/write and Utils copy/hash/readLine on stream timeoutsTimeoutException from AppendStream::read(), CachingStream::read(), and Utils::tryGetContents() on stream timeoutsTimeoutException from InflateStream when the decoded source stream times outInflateStream::close()Utils::copyToStream()OverflowException when stream byte counts or offsets exceed PHP_INT_MAXStreamWrapper runtime failures to PHP stream failure valuesContent-Length to multipart/form-data parts (RFC 7578 §4.8)Content-Disposition parameters and reject unsafe boundaries and part headersMultipartStream part header valuesMultipartStream boundary '0' instead of replacing it with a generated boundarywithHost(), including userinfo formsUri construction, fromParts(), and withHost()UriComparator::isCrossOrigin()CAPITALIZE_PERCENT_ENCODING and DECODE_UNRESERVED_CHARACTERS to userinfo and hostHeader::splitList()Header::parse()ralouphie/getallheaders dependencyHeader::normalize() methodUtils:: asciiToLower, asciiToUpper, asciiUcFirst, caselessEquals, caselessContainsgetHost() matches the URI authority (GHSA-c2w2-prh8-qm98)Query::build() that guzzlehttp/psr7 3.0 rejectsUtils::streamFor(); cast them to a string for 3.0Uri::withQueryValues() values; cast them to a string for 3.0Utils::modifyRequest() to reject conflicting URI and Host header changes in the same callHeader::parse() to split semicolon-separated parameters without repeated regular expression lookaheadsUriComparator::isCrossOrigin() so only HTTP and HTTPS missing ports receive implicit default portsUtils::modifyRequest() change values that guzzlehttp/psr7 3.0 will rejectUtils::copyToStream() to retry short destination writes instead of dropping the unwritten remainderHeader::parse() splitting of semicolon-separated parameters with escaped quotesUriNormalizer percent-encoding normalizations to URI fragmentsLimitStream::getSize() return 0 for slices past the underlying stream endAppendStream::read() return an empty string when no streams are attachedCachingStream::read() throw on an incomplete cache-target write instead of silently corrupting replaysCachingStream::seek() from looping indefinitely when the remote stream makes no progressServerRequest::fromGlobals() robust against unexpected HTTP header value types in $_SERVERUtils::modifyRequest() with numeric header namesServerRequest::fromGlobals() against malformed $_SERVER valuesStreamWrapper::getResource() cannot create a resourceUtils::modifyRequest()UriResolver::resolve()Uri::__toString() side-effect-freeCachingStream::detach() returning an incomplete resource before the decorated stream has been fully readMessage::bodySummary() returning null when truncating printable UTF-8 bodies inside a multibyte characterMultipartStream[@return](https://github.com/return) static to MessageTrait methodsSee also the change log for changes.
+ signs in Uri::withQueryValue() and Uri::withQueryValues() to prevent them being interpreted as spacesSee also the change log for changes.
See also the change log for changes.
See also the change log for changes.
Utils::redactUserInfo() methodQuery::buildSee also the change log for changes.
StreamWrapper::stream_stat() return false if inner stream's size is nullSee also the change log for changes.
call_user_func* with native callsSee also the change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
See change log for changes.
How can I help you explore Laravel packages today?