league/uri-components
URI components manipulation library
7.8.1
47M downloads/mo
#300 most downloaded on Packagist
thephpleague/uri-components
What this package is like to depend on
Last release 5 months ago
15 Mar 2026
Release timing varies
gaps range from 9 days to 12 months
Nearly every release is documented
notes for 46 of 47 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
50 releases · first in 2016
4 releases in the last 12 months
see the full history below
Release timeline
50 releases · Oct 2016 to Mar 2026Releases
latest 50-
7.8.115 Mar 2026Release notes
Open source →Added
- None
Fixed
- Update requirement to use
uri7.8.1
Deprecated
- None
Removed
- None
Release notes
Open source →Added
- None
Fixed
- Update requirement to use
uri7.8.1
Deprecated
- None
Removed
- None
-
7.8.014 Jan 2026Release notes
Open source →Added
- Added support for
BackedEnum Query::hasListQuery::getListQuery::withListQuery::appendListQuery::withoutListQuery::withoutListsQuery::onlyListsQuery::countDistinctKeysQuery::isNotEmptyQuery::mapQuery::filterQuery::indexOfValueQuery::valueAtQuery::keyAtQuery::pairURLSearchParams::countDistinctKeysURLSearchParams::tapDomain::isSubdomainOfDomain::hasSubdomainDomain::isSiblingOfDomain::parentHosDomain::commonAncestorWith- Added
transformmethod to Immutable classes
Fixed
QueryandModifiermethods can opt to switch to different query string extraction using the new$extractModeparameter.QueryandModifiermethods can opt to switch to different query string composition using the new$composeModeparameter.QueryandModifiermethods can opt to switch to different type coercion using the new$coercionModeparameter.
Deprecated
URLSearchParams::uniqueKeyCountuseURLSearchParams::countDistinctKeysinstead
Removed
- None
Release notes
Open source →Added
- Added support for
BackedEnum Query::hasListQuery::getListQuery::withListQuery::appendListQuery::withoutListQuery::withoutListsQuery::onlyListsQuery::countDistinctKeysQuery::isNotEmptyQuery::mapQuery::filterQuery::indexOfValueQuery::valueAtQuery::keyAtQuery::pairURLSearchParams::countDistinctKeysURLSearchParams::tapDomain::isSubdomainOfDomain::hasSubdomainDomain::isSiblingOfDomain::parentHosDomain::commonAncestorWith- Added
transformmethod to Immutable classes
Fixed
QueryandModifiermethods can opt to switch to different query string extraction using the new$extractModeparameter.QueryandModifiermethods can opt to switch to different query string composition using the new$composeModeparameter.QueryandModifiermethods can opt to switch to different type coercion using the new$coercionModeparameter.
Deprecated
URLSearchParams::uniqueKeyCountuseURLSearchParams::countDistinctKeysinstead
Removed
- None
- Added support for
-
7.7.007 Dec 2025Release notes
Open source →Added
Domain::firstreturns the first domain labelDomain::lastreturns the last domain labelDomain::containstells wether the label is present in the domainDomain::indexOfreturns the index of the first occurrence of the labelDomain::lastIndexOfreturns the index of the last occurrence of the labelDomain::isEmptytells whether the domain is empty or not (contains at least on label)HierarchicalPath::firstreturns the first segmentHierarchicalPath::lastreturns the last segmentHierarchicalPath::containstells whether the segment is present in the pathHierarchicalPath::indexOfreturns the index of the first occurrence of the segmentHierarchicalPath::lastIndexOfreturns the index of the last occurrence of the segmentHierarchicalPath::isEmptytells whether the path is empty or not (contains at least on segment)Query::firstreturns the first value for a given query key pairQuery::lastreturns the last value for a given query key pairQuery::isEmptytells whether the query is empty or notURLSearchParams::firstreturns the first value for a given query key pairURLSearchParams::lastreturns the last value for a given query key pairURLSearchParams::hasValuean alias of usingURLSearchParams::haswith 2 parametersURLSearchParams::deleteValuean alias of usingURLSearchParams::deletewith 2 parametersModifier::redactUserInforedacts the user info component if presentModifier::redactPathSegmentsredacts specific path segments if presentModifier::redactPathNextSegmentsredacts specific path next segments if presentModifier::redactPathSegmentsByOffsetredacts specific path segments by offset if presentModifier::redactQueryPairsredacts specific query pair if presentModifier::prependQueryprepend a query string to the URI query componentModifier::prependPathreplaceModifier::prependSegmentModifier::appendPathreplaceModifier::appendSegmentModifier::prependSegmentsModifier::appendSegments
Fixed
- Fix deprecation message for
Modifier::uri()method 166 by meyerbaptiste - Fix missing
SensitiveParameterusage onModifier::withUserInfomethod - Fix Host resolution using the new
HostRecordclass - Fix
Modifier::withPathimprove handling of path leading slash presence for PSR-7 implementing classes
Deprecated
Modifier::prependSegmentuseModifier::prependPathinsteadModifier::appendSegmentuseModifier::appendPathinstead
Removed
- None
Release notes
Open source →Added
Domain::firstreturns the first domain labelDomain::lastreturns the last domain labelDomain::containstells wether the label is present in the domainDomain::indexOfreturns the index of the first occurrence of the labelDomain::lastIndexOfreturns the index of the last occurrence of the labelDomain::isEmptytells whether the domain is empty or not (contains at least on label)HierarchicalPath::firstreturns the first segmentHierarchicalPath::lastreturns the last segmentHierarchicalPath::containstells whether the segment is present in the pathHierarchicalPath::indexOfreturns the index of the first occurrence of the segmentHierarchicalPath::lastIndexOfreturns the index of the last occurrence of the segmentHierarchicalPath::isEmptytells whether the path is empty or not (contains at least on segment)Query::firstreturns the first value for a given query key pairQuery::lastreturns the last value for a given query key pairQuery::isEmptytells whether the query is empty or notURLSearchParams::firstreturns the first value for a given query key pairURLSearchParams::lastreturns the last value for a given query key pairURLSearchParams::hasValuean alias of usingURLSearchParams::haswith 2 parametersURLSearchParams::deleteValuean alias of usingURLSearchParams::deletewith 2 parametersModifier::redactUserInforedacts the user info component if presentModifier::redactPathSegmentsredacts specific path segments if presentModifier::redactPathNextSegmentsredacts specific path next segments if presentModifier::redactPathSegmentsByOffsetredacts specific path segments by offset if presentModifier::redactQueryPairsredacts specific query pair if presentModifier::prependQueryprepend a query string to the URI query componentModifier::prependPathreplaceModifier::prependSegmentModifier::appendPathreplaceModifier::appendSegmentModifier::prependSegmentsModifier::appendSegments
Fixed
- Fix deprecation message for
Modifier::uri()method 166 by meyerbaptiste - Fix missing
SensitiveParameterusage onModifier::withUserInfomethod - Fix Host resolution using the new
HostRecordclass - Fix
Modifier::withPathimprove handling of path leading slash presence for PSR-7 implementing classes
Deprecated
Modifier::prependSegmentuseModifier::prependPathinsteadModifier::appendSegmentuseModifier::appendPathinstead
Removed
- None
-
7.6.018 Nov 2025Release notes
Open source →Added
UriComponentInterface::equalsmethodFragmentDirectivessupportComponent::whenconditional method to ease component building logic.URLSearchParams::whenconditional method to ease component building logic.Modifier::prependQueryParametersreturns a modifier with prepended query parametersModifier::replaceQueryParameterreturns a modifier with part of its query string replacedModifier::replaceQueryPairreturns a modifier with part of its query string replacedModifier::whenconditional method to ease component building logic.Modifier::normalizeIpreturns the host normalized for IPv6 and IPv4 addressesModifier::normalizeHostreturns the host as normalized by the WHATWG algorithmModifier::with*method from the underlyingUriobject are proxy to improve DX.Modifier::wrapstatic method which wraps the underlying URI object used by the Modifier class.Modifier::unwrapmethod which returns the underlying URI object used by the Modifier class.Modifier::prefixQueryPairsandModifier::prefixQueryParametersto prefix Query using the pair key or the parameter namesModifier::toMarkdownAnchorreturns the Markdown string representation of the anchor tag with the current instance as its href attribute.Modifier::toHtmlAnchorreturns the HTML string representation of the anchor tag with the current instance as its href attribute.tryNewnamed constructor added to all classes to return a new instance on success ornullon failure.Query::decodedthe string representation of the component decoded.Query::normalizedQuery::fromPairsandQuery::fromVariabletakes a optional$prefixparameter to update the query pair keys or parameter namesQuery::indexOfandQuery::replaceQuery::mergeParametersQuery::replaceParameterQuery::replacePairQuery::prependURLSearchParams::decodedthe string representation of the component decoded.Path::nornalizedFragment::normalizedHierarchicalPath::normalizedDatapath::normalized- Support for
Uri\Rfc3986\Uri - Support for
Uri\WhatWg\Url Port::defaultSchemesPort::defaultSchemeScheme::isWhatWgSpecialScheme::defaultPortScheme::hasDefaultPort
Fixed
Modifierhost related method return host in IDN form or ASCII form depending on the URI input formatUserInfonow can be constructed and mutated even when theusercomponent is not present. It was throwing an exception before.
Deprecated
Modifier::getIdnUriStringuseModifier::toDisplayStringinsteadModifier::getUriStringuseModifier::toStringinsteadModifier::getUriuseModifier::uriinsteadModifier::fromuseModifier::wrapinstead
Removed
- None
Release notes
Open source →Added
UriComponentInterface::equalsmethodFragmentDirectivessupportComponent::whenconditional method to ease component building logic.URLSearchParams::whenconditional method to ease component building logic.Modifier::prependQueryParametersreturns a modifier with prepended query parametersModifier::replaceQueryParameterreturns a modifier with part of its query string replacedModifier::replaceQueryPairreturns a modifier with part of its query string replacedModifier::whenconditional method to ease component building logic.Modifier::normalizeIpreturns the host normalized for IPv6 and IPv4 addressesModifier::normalizeHostreturns the host as normalized by the WHATWG algorithmModifier::with*method from the underlyingUriobject are proxy to improve DX.Modifier::wrapstatic method which wraps the underlying URI object used by the Modifier class.Modifier::unwrapmethod which returns the underlying URI object used by the Modifier class.Modifier::prefixQueryPairsandModifier::prefixQueryParametersto prefix Query using the pair key or the parameter namesModifier::toMarkdownAnchorreturns the Markdown string representation of the anchor tag with the current instance as its href attribute.Modifier::toHtmlAnchorreturns the HTML string representation of the anchor tag with the current instance as its href attribute.tryNewnamed constructor added to all classes to return a new instance on success ornullon failure.Query::decodedthe string representation of the component decoded.Query::normalizedQuery::fromPairsandQuery::fromVariabletakes a optional$prefixparameter to update the query pair keys or parameter namesQuery::indexOfandQuery::replaceQuery::mergeParametersQuery::replaceParameterQuery::replacePairQuery::prependURLSearchParams::decodedthe string representation of the component decoded.Path::nornalizedFragment::normalizedHierarchicalPath::normalizedDatapath::normalized- Support for
Uri\Rfc3986\Uri - Support for
Uri\WhatWg\Url Port::defaultSchemesPort::defaultSchemeScheme::isWhatWgSpecialScheme::defaultPortScheme::hasDefaultPort
Fixed
Modifierhost related method return host in IDN form or ASCII form depending on the URI input formatUserInfonow can be constructed and mutated even when theusercomponent is not present. It was throwing an exception before.
Deprecated
Modifier::getIdnUriStringuseModifier::toDisplayStringinsteadModifier::getUriStringuseModifier::toStringinsteadModifier::getUriuseModifier::uriinsteadModifier::fromuseModifier::wrapinstead
Removed
- None
-
7.5.108 Dec 2024 -
7.5.008 Dec 2024Release notes
Open source →Added
UrlSearchParams::uniqueKeyCountModifier::getIdnUriStringModifier::hostToIpv6CompressedModifier::hostToIpv6ExpandedScheme::isHttpScheme::isWebsocketScheme::isSslScheme::isSpecial- Using PHP8.4
Deprecatedattribute to signal deprecated public API methods and constants.
Fixed
- Remove Usage of PSR-7
UriInterfaceinUrlSearchParamsclass - Normalizes
fromUrito return the same value for the component if the URI object has the same string representation.
Deprecated
- Usage of PSR-7
UriFactoryInterfaceis deprecated inModifierclass
Removed
- None
Release notes
Open source →Added
UrlSearchParams::uniqueKeyCountModifier::getIdnUriStringModifier::hostToIpv6CompressedModifier::hostToIpv6ExpandedScheme::isHttpScheme::isWebsocketScheme::isSslScheme::isSpecial- Using PHP8.4
Deprecatedattribute to signal deprecated public API methods and constants. Host::encodedmethod to raw url encode the host
Fixed
- Remove Usage of PSR-7
UriInterfaceinUrlSearchParamsclass - Normalizes
fromUrito return the same value for the component if the URI object has the same string representation.
Deprecated
- Usage of PSR-7
UriFactoryInterfaceis deprecated inModifierclass
Removed
- None
-
7.4.123 Mar 2024Release notes
Open source →Added
- None
Fixed
- Fix package to avoid PHP8.4 deprecation warnings
- Bug Fix
removeEmptyPairs#133
Deprecated
- None
Removed
- None
Release notes
Open source →Added
- None
Fixed
- Fix package to avoid PHP8.4 deprecation warnings
- Bug Fix
removeEmptyPairs#133
Deprecated
- None
Removed
- None
-
7.4.001 Dec 2023Release notes
Open source →Added
Query::fromVariableUrlSearchParams::fromVariable
Fixed
- None
Deprecated
Query::fromParametersuseQuery::fromVariableinsteadUrlSearchParams::fromParametersuseUrlSearchParams::fromVariableinstead
Removed
- None
Release notes
Open source →Added
Query::fromVariableUrlSearchParams::fromVariable
Fixed
- None
Deprecated
Query::fromParametersuseQuery::fromVariableinsteadUrlSearchParams::fromParametersuseUrlSearchParams::fromVariableinstead
Removed
- None
-
7.3.009 Sep 2023Release notes
Open source →Added
League\Uri\Modifier::removeQueryPairsByKeyLeague\Uri\Modifier::removeQueryPairsByValueLeague\Uri\Modifier::removeQueryPairsByKeyValueLeague\Uri\Components\Query::hasPairLeague\Uri\Components\Query::withoutPairByKeyLeague\Uri\Components\Query::withoutPairByValueLeague\Uri\Components\Query::withoutPairByKeyValueLeague\Uri\Components\Query::fromFormDataLeague\Uri\Components\Query::toFormDataLeague\Uri\Components\URLSearchParams
Fixed
League\Uri\Components\Query::sortto improve WHATWG compliance.League\Uri\QueryString::buildFromPairsshould throwSyntaxErrorinstead ofTypeErrorLeague\Uri\Components\Queryuses internallyLeague\Uri\KeyValuePair\ConverterLeague\Uri\Components\Query::toRFC3986is no longer deprecatedLeague\Uri\Components\Query::jsonSerualizeusestoFormDatainstead oftoRFC1738League\Uri\Components\Queryfix float handling.- Exception message typo fix #121 by GrahamCampbell
Deprecated
League\Uri\Modifier::removeQueryPairsuseLeague\Uri\Modifier::removeQueryPairsByKeyinstead.League\Uri\Components\Query::withoutPairuseLeague\Uri\Components\Query::withoutPairByKeyinstead.
Removed
- None
Release notes
Open source →Added
League\Uri\Modifier::removeQueryPairsByKeyLeague\Uri\Modifier::removeQueryPairsByValueLeague\Uri\Modifier::removeQueryPairsByKeyValueLeague\Uri\Components\Query::hasPairLeague\Uri\Components\Query::withoutPairByKeyLeague\Uri\Components\Query::withoutPairByValueLeague\Uri\Components\Query::withoutPairByKeyValueLeague\Uri\Components\Query::fromFormDataLeague\Uri\Components\Query::toFormDataLeague\Uri\Components\URLSearchParams
Fixed
League\Uri\Components\Query::sortto improve WHATWG compliance.League\Uri\QueryString::buildFromPairsshould throwSyntaxErrorinstead ofTypeErrorLeague\Uri\Components\Queryuses internallyLeague\Uri\KeyValuePair\ConverterLeague\Uri\Components\Query::toRFC3986is no longer deprecatedLeague\Uri\Components\Query::jsonSerualizeusestoFormDatainstead oftoRFC1738League\Uri\Components\Queryfix float handling.- Exception message typo fix #121 by GrahamCampbell
Deprecated
League\Uri\Modifier::removeQueryPairsuseLeague\Uri\Modifier::removeQueryPairsByKeyinstead.League\Uri\Components\Query::withoutPairuseLeague\Uri\Components\Query::withoutPairByKeyinstead.
Removed
- None
-
7.2.130 Aug 2023 -
7.2.030 Aug 2023Release notes
Open source →Added
Modifier::appendQueryPairsModifier::mergeQueryPairsModifier::removeQueryPairsModifier::removeEmptyQueryPairsModifier::appendQueryParametersModifier::mergeQueryParametersModifier::removeQueryParametersModifier::removeQueryParametersIndices
Fixed
- None
Deprecated
Modifier::removeParamsuseModifier::removeQueryParametersinsteadModifier::removePairsuseModifier::removeQueryPairsinsteadModifier::removeEmptyPairsuseModifier::removeEmptyQueryPairsinstead
Removed
- None
-
7.1.021 Aug 2023Release notes
Open source →Added
Modifier::encodeQuery
Fixed
- Using the
Encoderclass to normalize encoding and decoding in all packages
Deprecated
- None
Removed
- None
-
7.0.010 Aug 2023Release notes
Open source →Added
valuemethod to replace the removedgetContentmethod.- requires
League\Uripackage. League\Uri\Components\Scheme::newnamed constructorLeague\Uri\Components\UserInfo::newnamed constructorLeague\Uri\Components\Host::newnamed constructorLeague\Uri\Components\Domain::newnamed constructorLeague\Uri\Components\Fragment::newnamed constructorLeague\Uri\Components\Query::newnamed constructorLeague\Uri\Components\Path::newnamed constructorLeague\Uri\Components\DataPath::newnamed constructorLeague\Uri\Components\UserInfo::withUsermodifier methodLeague\Uri\Components\UserInfo::withPassmodifier methodLeague\Uri\Components\Port::fromNumbermodifier methodLeague\Uri\Components\Query::parametersaccessing methodLeague\Uri\Components\Query::parameteraccessing methodLeague\Uri\Components\Query::hasParameteraccessing methodLeague\Uri\IPv4Calculators\MissingIPv4CalculatorexceptionLeague\Uri\Components\OffsetOutOfBoundsexception addedLeague\Uri\Modifierto replace deprecatedLeague\Uri\Modifier
Fixed
- converts Value Objects properties to being
private readonlywhere possible. - All components class constructors (except for the
UserInfoand theAuthorityclasses) are made private use the available named constructors instead - Named constructors default value are removed, you need to explicitly add an argument value or use the
::new()named constructor instead. UserInfoclass makes a distinction betweennulland the empty string.Query::hasaccessing method accept a variadic parameters to check multiple keys at the same time.Domainvalue can benullor a non-empty string previously it would trigger an exceptionDomain::appendandDomain::prependrespects the root status of the instance.
Deprecated
- All
createFromStringnamed constructors are replaced by thenewnamed constructor. - All
createFromNullnamed constructors are replaced by thenewnamed constructor. - All remaining named constructors which starts with
createFrom*replaced by the same method starting withfrom*. For exampleAuthority::createFromUriis deprecated in favor ofAuthority::fromUri Query::paramsis replaced byQuery::parametersandQuery::parameterHierarchicalPath::segmentsuseHierarchicalPath::getIteratorinsteadDomain::labelsuseDomain::getIteratorinsteadLeague\Uri\UriModifieruseLeague\Uri\ModifierLeague\Uri\IPv4NormalizeruseLeague\Uri\Modifierinstead
Removed
- PHP7 and PHP8.0 support
withContentandgetContentmethods- Support for
__set_state - Support for
floattype as possible argument for components - Support for
inttype as possible argument for components UserInfo::withUserInfomodifier method useUserInfo::withUserand/orUserInfo::withPassinstead- Remove the
Exceptionsnamespace League\Uri\Exceptions\IPv4CalculatorMissinguseLeague\Uri\IPv4Calculators\MissingIPv4CalculatorinsteadLeague\Uri\Exceptions\OffsetOutOfBoundsuseLeague\Uri\Components\OffsetOutOfBoundsinsteadLeague\Uri\QueryStringclass. Class moved to theuri-interfacespackage.
-
7.0.0-beta.226 Jun 2023 pre-releaseNothing published for this version
-
7.0.0-beta.126 Jun 2023 pre-releaseNothing published for this version
-
2.4.213 Aug 2023Nothing published for this version
-
2.4.126 May 2022Release notes
Open source →Added
- None
Fixed
- conversion query component for non ASCII characters see #202
Deprecated
- None
Remove
- None
-
2.4.002 Aug 2021Release notes
Open source →Added
Component::toStringIDNAconversion in now normalize using theUri-Interfacepackage classes
Fixed
- conversion host component from ASCII to unicode no longer throw
Deprecated
- None
Remove
- None
-
2.3.026 Jan 2021Release notes
Open source →Added
Authority::createFromNullAuthority::createFromStringAuthority::createFromComponentsDataPath::createFromFilePathDataPath::createFromStringDomain::createFromStringDomain::createFromHostHierarchicalPath::createFromPathHierarchicalPath::createFromStringPath::createFromString- Support for
PHP8.0
Fixed
- Fix RFC1738 encoding in
QueryString::build - Improve
UriModifierusing the newly added named constructors.
Deprecated
Authority::__constructreplaced byAuthoritynamed constructorsDataPath::createFromPathreplaced byDataPath::createFromFilePathDomain::__constructreplaced byDomainnamed constructorsHierarchicalPath::__constructreplaced byHierarchicalPathnamed constructors
Remove
- Support for
PHP7.2
-
2.2.109 Feb 2020Release notes
Open source →Added
- None
Fixed
- back port improvement made to
DataUriby #154 thanks to Nicolas Grekas
Deprecated
- None
Remove
- None
-
2.2.008 Feb 2020Release notes
Open source →Added
- None
Fixed
Deprecated
- None
Remove
- Hard dependencies on the
ext-fileinfoPHP extensions see #154 thanks Nicolas Grekas
-
2.1.019 Dec 2019Release notes
Open source →Added
League\Uri\UriModifier::removeEmptyPairs- to remove empty pairs from the URL object.
Fixed
- Improve UserInfo decoding issue #28
- Improve processing URI object with
League\Uri\UriModifierwith a better distinction between empty and undefined URI component.
Deprecated
- None
Remove
- None
-
2.0.105 Nov 2019Release notes
Open source →Added
- None
Fixed
- Improved Domain name detection according to RFC1132 see issue #27
- Normalized exception message formatting.
Deprecated
- None
Remove
- None
-
2.0.018 Oct 2019Release notes
Open source →Added
League\Uri\IPv4HostNormalizerto ease IPV4 host string normalization.League\Uri\UriModifierto ease manipulatingLeague\Uri\UriInterfaceandPsr\Http\Message\UriInterfaceimplementing objects.League\Uri\QueryStringto parse, extract and build query string and parameters- All components classes implement the
League\Uri\Contracts\ComponentInterface - All components classes expose the
createFromUrinamed constructor to instantiate a component object from a URI object League\Uri\Components\Authorityto represent the URI authority componentLeague\Uri\Components\Fragment::decodedto return the safely decoded fragment contentLeague\Uri\Components\UserInfo::decodedto return the safely decoded user info contentLeague\Uri\Components\Port::toIntto return the int representation of the Port or nullLeague\Uri\Components\Domainto better process domain hostLeague\Uri\Components\HierarchicalPath::createAbsoluteFromSegmentsLeague\Uri\Components\HierarchicalPath::createRelativeFromSegmentsLeague\Uri\Components\HierarchicalPath::segmentsto return the component segmentsLeague\Uri\Components\HierarchicalPath::getto return a specific segmentLeague\Uri\Components\Queryfollows more closely the URLSearchParams specifications from the WHATWG groupLeague\Uri\Components\Query::createFromRFC3986to return a new object from a RFC3986 query stringLeague\Uri\Components\Query::createFromRFC1738to return a new object from a RFC1738 query stringLeague\Uri\Components\Query::toRFC3986to return a RFC3986 query stringLeague\Uri\Components\Query::toRFC1738to return a RFC1738 query string
Fixed
- Components classes are made
final getContentno-longer takes any parameterHostobjects throwsLeague\Uri\Exception\IdnSupportMissingon mis-configured or absent Intl extension presence.UserInfo::__constructexpects two arguments the user and the pass instead of one.Query::__constructis now private- Query parsing/building is fixed so that a round between parsing and building returns the original input.
Deprecated
- None
Remove
- support for
PHP7.0 - support for
PHP7.1 - support for Public Suffix List resolution
isEmptyandisNullmethods are removedLeague\Uri\parse_queryLeague\Uri\build_queryLeague\Uri\extract_queryLeague\Uri\pairs_to_paramsLeague\Uri\QueryBuilderLeague\Uri\QueryParserLeague\Uri\Components\ComponentInterfaceLeague\Uri\Components\HierarchicalPath::createFromSegmentsLeague\Uri\Components\HierarchicalPath::getSegmentsLeague\Uri\Components\HierarchicalPath::getSegmentLeague\Uri\Components\HierarchicalPath::IS_ABSOLUTELeague\Uri\Components\HierarchicalPath::IS_RELATIVE- The following methods are transferred to the new
League\Uri\Components\Domainclass League\Uri\Components\Host::isAbsoluteLeague\Uri\Components\Host::getLabelsLeague\Uri\Components\Host::getLabelLeague\Uri\Components\Host::keysLeague\Uri\Components\Host::countLeague\Uri\Components\Host::getIteratorLeague\Uri\Components\Host::appendLeague\Uri\Components\Host::prependLeague\Uri\Components\Host::replaceLabelLeague\Uri\Components\Host::withoutLabelsLeague\Uri\Components\Host::withRootLabelLeague\Uri\Components\Host::withoutRootLabelLeague\Uri\Components\Query::ksortLeague\Uri\Components\Query::getParamsLeague\Uri\Components\Query::getParamLeague\Uri\Components\Query::getPairsLeague\Uri\Components\Query::getPairLeague\Uri\Components\Query::hasPair
-
1.8.224 Oct 2018 -
1.8.106 Jul 2018Release notes
Open source →Added
- None
Fixed
- Issue #21 namespace collision
with exception usage in
Uri\QueryParserand QUri\QueryBuilder
Deprecated
- None
Remove
- None
-
1.8.014 Mar 2018Release notes
Open source →Added
- IPvFuture support
Fixed
- Using PHPStan
- Using the new scrutinizr engine for PHP
- Bug fix Port class to conform to RFC3986 now allow any port number greater or equals to
0. - Improve Host parsing
Deprecated
- None
Remove
mbstringextension requirement
-
1.7.116 Feb 2018Release notes
Open source →Added
- None
Fixed
- The
Hostresolver and its usage is lazyloaded so thatHostonly requires and used them if needed - Bug fix issue with:
Host::withPublicSuffixHost::withRegistrableDomainHost::withSubDomainmethods that were leaving the currentHostobject corrupted in some cases.
Deprecated
- None
Remove
- None
-
1.7.031 Jan 2018Release notes
Open source →Added
- Adding the possibility to use your own domain resolver object.
Host::__constructcan take an optionalRulesobject as the domain resolverHost::createFromIpcan take an optionalRulesobject as the domain resolverHost::createFromLabelscan take an optionalRulesobject as the domain resolverHost::withDomainResolverto enable switching to current domain resolver object
Fixed
-
The domain resolver as a Rules object is now injecting into the Host domain so that its data can be cached independently of the filecache. If not domain resolver is provided the Host will fallback to using the filecache with the data being kept for 7 days in a
vendorsubdirectory. -
Decoupled the
QueryBuilderand theQueryParserfromComponentTrait
Deprecated
- None
Remove
- None
- Adding the possibility to use your own domain resolver object.
-
1.6.005 Dec 2017Release notes
Open source →Added
Host::withPublicSuffixto complete registered name manipulation methods
Fixed
- registered name infos loading
Deprecated
- None
Remove
- None
-
1.5.001 Dec 2017Release notes
Open source →Added
Uri\QueryParserclass to parse any string into key/pair value or extract PHP valuesUri\QueryBuilderclass to build a valid query string from a collection of Key/pair valuesUri\pairs_to_paramsalias forQueryParser::convert
Fixed
- URI Host parsing to respect RFC3986
- improve internal code
Deprecated
Query::parsereplaced byQueryParser::parseQuery::extractreplaced byQueryParser::extractQuery::buildreplaced byQueryBuilder::buildHost::getRegisterableDomainreplaced byHost::getRegistrableDomainHost::withRegisterableDomainreplaced byHost::withRegistrableDomain
Remove
- internal traits
QueryParserTrait,HostInfoTrait
-
1.4.124 Nov 2017Release notes
Open source →Added
- None
Fixed
- URI Hostname parser local cache update
Deprecated
- None
Remove
- None
-
1.4.022 Nov 2017Release notes
Open source →Added
- Dependencies to League URI Hostname parser
Fixed
- Issue #109 Dependencie on a unstable package
Deprecated
- None
Remove
- Dependencies to PHP Domaine parser
-
1.3.017 Nov 2017Release notes
Open source →Added
Query::getSeparator,Query::withSeparatorto allow modifying query string separator.Query::__constructtakes a second argument, the query separator which default to&.Query::__debugInfonows adds query separator informations.Query::withoutParamsto complementQuery::withoutPairsmethod.Query::createFromParamsto complementQuery::createFromPairsnamed constructor.Query::withoutNumericIndicesto normalized the query string by removing extra numeric indices added by the use ofhttp_build_query.Query::withoutEmptyPairsto normalized the query string #7 and #8
Fixed
Query::mergeandQuery::appendnormalized the query string to remove empty pairs see #7 and #8Query::buildandUri\buildnow accept any iterable structure.
Deprecated
- None
Remove
- None
-
1.2.006 Nov 2017Release notes
Open source →Added
League\Uri\build_queryas an alias ofQuery::build
Fixed
- function docblocks
Deprecated
- None
Remove
- None
-
1.1.103 Nov 2017Release notes
Open source →Added
League\Uri\parse_queryas an alias ofQuery::parseLeague\Uri\extract_queryas an alias ofQuery::extract
Fixed
League\Uri\parse_queryreturned value was the wrong one
Deprecated
- None
Remove
- None
-
1.1.024 Oct 2017Release notes
Open source →Added
League\Uri\parse_queryas an alias ofQuery::extract
Fixed
- Internal call in PHP7.2 with incompatible definitions
- update PHP Domain Parser to be compatible with PHP7.2 deprecation notice
- remove restriction to constructor characters for
Path,QueryandUserInfo.
Deprecated
- None
Remove
- None
-
1.0.410 Aug 2017Release notes
Open source →Added
- None
Fixed
- Bug fix label conversion depending on locale issue #102
Deprecated
- None
Remove
- None
-
1.0.327 Apr 2017Release notes
Open source → -
1.0.219 Apr 2017Release notes
Open source → -
1.0.106 Feb 2017Release notes
Open source →Added
- None
Fixed
- Update idn to ascii algorithm from INTL_IDNA_VARIANT_2003 to INTL_IDNA_VARIANT_UTS46
Deprecated
- None
Remove
- None
-
1.0.017 Jan 2017Release notes
Open source →Added
- None
Fixed
- Improve validation check for
Query::build - Remove `func_* function usage
- Improve
HierarchicalPath::createFromSegments - Internal code simplification
Deprecated
- None
Remove
- None
-
1.0.0-RC109 Jan 2017 pre-releaseRelease notes
Open source →Added
ComponentInterfaceEncodingInterfaceHierarchicalPath::withDirnameHierarchicalPath::withBasenameHierarchicalPath::withoutSegmentsHierarchicalPath::replaceSegmentHost::withRegisterableDomainHost::withSubdomainHost::withRootLabelHost::withoutRootLabelHost::withoutLabelsHost::replaceLabelQuery::getParamsQuery::getParamQuery::appendQuery::hasPairQuery::withoutPairs
Fixed
- ComponentInterface::getContent supports RFC1738
- The methods that accept integer offset supports negative offset
HierarchicalPath::getSegmentHierarchicalPath::replaceSegmentHierarchicalPath::withoutSegmentsHost::getLabelHost::replaceLabelHost::withoutLabels
Query::mergeonly accepts string
Deprecated
- None
Remove
- PHP5 support
- Implementing
League\Uri\Interfaces\Component Query::hasKeyQuery::withoutQuery::filterHost::hasKeyHost::withoutHost::filterHost::replaceHierarchicalPath::hasKeyHierarchicalPath::withoutHierarchicalPath::filterHierarchicalPath::replaceLeague\Uri\Components\PathInterface
-
0.5.009 Dec 2016Release notes
Open source →Added
- None
Fixed
-
Remove
League\Uri\Interfaces\CollectionComponentinterface dependencies from:League\Uri\Components\HostLeague\Uri\Components\HierarchicalPath
-
Bug fix
League\Uri\Components\Query::build -
Update dependencies on
League\Uri\Interfaces
Deprecated
- None
Remove
- None
-
0.4.001 Dec 2016Release notes
Open source →Added
- None
Fixed
League\Uri\Components\Host::getContentnow support correctly RFC3987League\Uri\Components\Host::__toStringonly returns RFC3986 representationLeague\Uri\Components\UserInfo::getUserto use the$enc_typeparameterLeague\Uri\Components\UserInfo::getPassto use the$enc_typeparameter
Deprecated
- None
Remove
League\Uri\Components\Host::isIdnLeague\Uri\Components\Port::getDecodedLeague\Uri\Components\Scheme::getDecoded
-
0.3.029 Nov 2016Release notes
Open source →Added
League\Uri\Components\Exceptionas the base exception for the libraryLeague\Uri\Components\DataPath::getDecodedreturns the non-encoded pathLeague\Uri\Components\HierarchicalPath::getDecodedreturns the non-encoded pathLeague\Uri\Components\Path::getDecodedreturns the non-encoded pathLeague\Uri\Components\Fragment::getDecodedreturns the non-encoded fragmentLeague\Uri\Components\Port::getDecodedreturns the non-encoded portLeague\Uri\Components\Scheme::getDecodedreturns the non-encoded schemeLeague\Uri\Components\Query::extractpublic static method returns a hash similar toparse_strwithout the mangling from the query string
Fixed
getContentis updated to support RFC3987
Deprecated
- None
Removed
Query::parseduseQuery::extractinsteadQuery::parsedValueuseQuery::extractinstead
-
0.2.115 Nov 2016Release notes
Open source → -
0.2.009 Nov 2016Release notes
Open source →Added
Query::parsedreturns an array similar toparse_strresult with a second options with unmangled key.Query::getParsedValuereturns single value from the parse and unmangled PHP variables.Host::createFromIpa name constructor to create a host from a IPHost::getIpreturns the IP part from the host if present otherwise returnsnull
Fixed
Host::__constructno longers takes a IPv6 without delimiter as a valid argument.
Deprecated
- None
Removed
- None
-
0.1.109 Nov 2016 -
0.1.017 Oct 2016Release notes
Open source →Added
- None
Fixed
League\Uri\QueryParseris now a traitLeague\Uri\Components\Traits\QueryParserused byLeague\Uri\Components\QueryLeague\Uri\Components\UserInfonow only accepts string and null as constructor parameters.
Deprecated
- None
Removed
League\Uri\Components\UserLeague\Uri\Components\PassLeague\Uri\QueryParser