league/uri-interfaces
RFC 3986-compliant URI interfaces for PHP 8.1+. Defines contracts for URI objects and related components used across the League URI ecosystem. Supports IDN hosts (intl or polyfill) and IPv4 conversion (GMP/BCMath/64-bit).
Host::isIp is fixed to be more strict.UriString::resolve regression from previous minor version fixed see issue #184QueryString::compose and QueryString::composeFromValue a userland improved http_build_query method.QueryExtractMode and QueryComposeMode Enum to improve query parsing and building.StringCoercionMode to normalize type coercionBackedEnumFragmentDirective::toFragmentValueDomainHostInteraface::isSubdomainOfDomainHostInteraface::hasSubdomainDomainHostInteraface::isSiblingOfDomainHostInteraface::parentHostDomainHostInteraface::commonAncestorWithTransformable interfaceUriString::resolve method.HostRecord class to normalize parsing and caching Host resolutionHostType Host type enumeration list as defined by RFC3986HostFormat Host format enumaration list as defined by RFC3986/RFC3987UriString::buildAuthority should fail if an optional component is present when the host is missing.UriString::build should fail if an optional component is present when the host is missing.UriString::isValidHost use HostRecord::isValid method insteadUriComponentInterface::equalsContidionable interfaceUriInterface::resolveUriInterface::relativizeUriInterface::equalsUriInterface::toNormalizedStringUriInterface::withUsernameUriInterface::withPasswordIPv6\Converter::isIpv6IPv6\Converter::normalizeUriString::resolveUriString::removeDotSegmentsUriString::normalizeUriString::normalizeAuthorityUriString::containsRfc3986CharsUriString::containsRfc3987CharsUriString::isValidSchemeUriString::isValidHostFeatureDetection::supportsDomEncoder::decodeNecessaryEncoder::decodePathEncoder::decodeQueryEncoder::decodeFragmentEncoder::isUserEncodedEncoder::isPasswordEncodedEncoder::isUserInfoEncodedEncoder::isPathEncodedEncoder::isQueryEncodedEncoder::isFragmentEncodedEncoder::normalizeUserEncoder::normalizePasswordEncoder::normalizeUserInfoEncoder::normalizePathEncoder::normalizeQueryEncoder::normalizeFragmentEncoder::normalizeHostUriString::parse will fail if the URI contains whitespace.UriString::buildUri allows all arguments to be null including the path.UriString::buildAuthority allows the $user argument to be null and still generate a user info component.Encoder::decodePartial replaced by Encoder::decodeNecessarypsr/http-factory package which is never required in the package.UriInterface::toComponents returns an associative array containing all URI components values.UriInterface::getUsername returns the encoded user component of the URI.UriInterface::getPassword returns the encoded scheme-specific information about how to gain authorization to access the resource.Uri\IPv6\Converter allows expanding and compressing IPv6.Uri\IPv4\Converter::toIPv6Using6to4 allows converting an IPv4 into an IPv6 host using the 6to4 notation.Uri\IPv4\Converter::toIPv6UsingMapping allows mapping an IPv4 address into an IPv6 one.Deprecated attribute to signal deprecated public API methods and constants.HostInterface::encoded method to RFC3986 URL encode the hostUriStringUri\UriString::parseAuthority accepts Stringable object as valid inputUri\IPv4\Converter::toDecimal also handles 6to4 and IPv4 mapped address algorithm.Uri\QueryString::extract and QueryString::convert stop parsing too early issue #146UriInterface::getComponents use UriInterface::toComponentsLeague\Uri\Contracts\QueryInterface::withoutPairByKeyLeague\Uri\Contracts\QueryInterface::withoutPairByValueLeague\Uri\Contracts\QueryInterface::withoutPairByKeyValueLeague\Uri\Contracts\QueryInterface::toFormDataLeague\Uri\Contracts\QueryInterface::withoutPairByKeyValueLeague\Uri\KeyValuePair\Converter::fromFormDataLeague\Uri\KeyValuePair\Converter::separator methodLeague\Uri\KeyValuePair\Converter::encondingMap methodLeague\Uri\KeyValuePair\Converter fix encoding when the value is a float or the boolean falseContracts\QueryInterface\QueryInterface::withoutPair use Contracts\QueryInterface\QueryInterface::withoutPairByKey instead.League\Uri\Idna\Converter::isIdnLeague\Uri\Ipv4\Converter::isIpv4Stringable host object in League\Uri\Idna\Converter feature.Stringable host object in League\Uri\Exceptions\ConversionFailed feature.League\Uri\Encoder to normalize encoding URI and URI components.League\Uri\KeyValuePair\Converter to parse and build key/value pair string.QueryString classes and fix query encoding for basic RFC3986. #109UriComponentInterface::valueUriComponentInterface::toStringUserInfoInterface::withUserUserInfoInterface::withPassUriInterface::toStringUriInterface::getComponentsLeague\Uri\IPv4 toolsLeague\Uri\Idna toolsLeague\Uri\UriString parserLeague\Uri\QueryString parser__set_stateUriComponentInterface::getContent is removed in favor of UriComponentInterface::valueUriComponentInterface::withContent is removed with no replacement use other means to change the value of the component.UserInfoInterface::withUserInfo is removed in favor of UserInfoInterface::withUser and UserInfoInterface::withPass.HostInfoInterface::labels is removed with no replacement use the IteratorAggregate::getIterator method instead.SegmentedPathInterface::segments is removed with no replacement use the IteratorAggregate::getIterator method instead.League\Uri\Idna\Idna use League\Uri\Idna\Converter insteadLeague\Uri\Idna\IdnaInfo use League\Uri\Idna\Result insteadLeague\Uri\Exception\IdnSupportMissing use League\Uri\Exception\MissingFeature insteadLeague\Uri\Exceptions\FileinfoSupportMissing based on the work of Nicolas GrekasLeague\Uri\Contract\IpHostInterface::withoutZoneIdentifierLeague\Uri\Contract\AuthorityInterfaceLeague\Uri\Contract\DataPathInterfaceLeague\Uri\Contract\DomainHostInterfaceLeague\Uri\Contract\FragmentInterfaceLeague\Uri\Contract\HostInterfaceLeague\Uri\Contract\IpHostInterfaceLeague\Uri\Contract\PathInterfaceLeague\Uri\Contract\PortInterfaceLeague\Uri\Contract\QueryInterfaceLeague\Uri\Contract\SegmentedPathInterfaceLeague\Uri\Contract\UriComponentInterfaceLeague\Uri\Contract\UriExceptionLeague\Uri\Contract\UriInterfaceLeague\Uri\Contract\UserInfoInterfaceLeague\Uri\Exception\EncodingNotFoundLeague\Uri\Exception\IdnSupportMissingLeague\Uri\Exception\SyntaxErrorLeague\Uri\Interfaces namespaceLeague\Uri\UriInterfacePHP7.0League\Uri\Interfaces\Uri implements League\Uri\UriInterfaceLeague\Uri\UriInterface.League\Uri\Interfaces\Uri use League\Uri\UriInterface instead.League\Uri\Interfaces\Component. The interface is moved to the League URI Components package.League\Uri\Interfaces\Path replaces League\Uri\Interfaces\PathComponentLeague\Uri\Interfaces\Path::isEmptyLeague\Uri\Interfaces\CollectionComponentLeague\Uri\Interfaces\PathComponentLeague\Uri\Interfaces\Component::NO_ENCODING to remove any specific encodingLeague\Uri\Interfaces\Component::RFC3986_ENCODING to specify encoding according to RFC3986 rulesLeague\Uri\Interfaces\Component::RFC3987_ENCODING to specify encoding according to RFC3987 rulesComponent::getContent optional parameter default.League\Uri\Interfaces\Component::RFC3986League\Uri\Interfaces\Component::RFC3987League\Uri\Interfaces\Component::RFC3986 to specify encoding according to RFC3986 rulesLeague\Uri\Interfaces\Component::RFC3987 to specify encoding according to RFC3987 rulesLeague\Uri\Interfaces\Component::getContent now takes an optional $enc_type parameter
to specify the returned content encoding rules.League\Uri\Interfaces\Uri docblocks simplified around Exception thrownLeague\Uri\Interfaces\Component::getContentLeague\Uri\Interfaces\Component::withContentLeague\Uri\Interfaces\Component::isDefinedLeague\Uri\Interfaces\Collection to League\Uri\Interfaces\CollectionComponentLeague\Uri\Interfaces\Path to League\Uri\Interfaces\PathComponentLeague\Uri\Interfaces\UriPartLeague\Uri\Interfaces\HierarchicalComponentLeague\Uri\Interfaces\SchemeLeague\Uri\Interfaces\UserLeague\Uri\Interfaces\PassLeague\Uri\Interfaces\UserInfoLeague\Uri\Interfaces\HostLeague\Uri\Interfaces\PortLeague\Uri\Interfaces\Path::withoutEmptySegmentsLeague\Uri\Interfaces\Path::hasTrailingSlashLeague\Uri\Interfaces\Path::withTrailingSlashLeague\Uri\Interfaces\Path::withoutTrailingSlashLeague\Uri\Interfaces\Path::getTypecodeLeague\Uri\Interfaces\Path::withTypecodeLeague\Uri\Interfaces\Path::FTP_TYPE_ASCIILeague\Uri\Interfaces\Path::FTP_TYPE_BINARYLeague\Uri\Interfaces\Path::FTP_TYPE_DIRECTORYLeague\Uri\Interfaces\Path::FTP_TYPE_EMPTYLeague\Uri\Interfaces\HierarchicalPathLeague\Uri\Interfaces\DataPathLeague\Uri\Interfaces\QueryLeague\Uri\Interfaces\FragmentHost::isIp is fixed to be more strict.UriString::resolve regression from previous minor version fixed see issue #184How can I help you explore Laravel packages today?