Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Uri Laravel Package

league/uri

League URI is a PHP 8.1+ library with intuitive classes for parsing, validating, normalizing, and manipulating URIs. Supports PSR-7 integration plus optional IDN, IPv4 conversion, and HTML/DOM features when extensions are available.

View on GitHub
Deep Wiki
Context7
7.8.1

Added

  • None

Fixed

  • Update requirement to use uri-interfaces 7.8.1
  • Simplify VariableBag implementation

Deprecated

  • None

Removed

  • None
7.8.0

Added

  • Added the Builder class
  • Added support for BackedEnum
  • Added transform method to Uri and Urn

Fixed

  • Fix regression in deprecated Uri::frombaseUri method 175

Deprecated

  • None

Removed

  • None
7.7.0

Added

  • Uri::isIpv4Host tells whether the URI host is an IPv4 address
  • Uri::isIpv6Host tells whether the URI host is an IPv6 address
  • Uri::isIpvFutureHost tells whether the URI host is an IPvFuture address
  • Uri::isRegisteredNameHost tells whether the URI host is a registered name
  • Uri::isDomainHost tells whether the URI host is a domain name

Fixed

  • Query order not respected in BaseUri::isSameDocument method 165
  • Fix Host resolution using the new HostRecord class, some registered name were wrongly throwing exceptions.
  • Fix Uri::withPath improve handling of path leading slash presence
  • Fix UriTemplate::exapndToUrl and UriTemplate::expandToUrlOrFail adding the missing softErrors argument populated by reference.

Deprecated

  • None

Removed

  • None
7.6.0

Added

  • League\Uri\Urn object to specifically work with URN as defined by RFC8141
  • Http::tryNew returns a new Uri instance on success or null on failure (ie: a Relax version of Http::new).
  • Http::when conditional method to ease component building logic.
  • Uri::parse returns a new Uri instance on success or null on failure (ie: a Relax version of Uri::fromBaseUri and Uri::new) that mimics the behaviour of the upcoming native PHP URI parse method.
  • Uri::tryNew returns a new Uri instance on success or null on failure (ie: a Relax version of Uri::new).
  • Uri::when conditional method to ease component building logic.
  • Uri::isOpaque tells whether the URI is opaque or not.
  • Uri::isAbsolute tells whether the URI is absolute or not.
  • Uri::isNetworkPath tells whether the URI is a network path.
  • Uri::isAbsolutePath tells whether the URI is an absolute path.
  • Uri::isRelativePath tells whether the URI is a relative path.
  • Uri::isSameDocument tells whether both URIs refer to the same document.
  • Uri::equals tells whether both URIs refer to the same document (allows taking into account the fragment component)
  • Uri::isLocalFile tells whether the file scheme base URI represents a local file.
  • Uri::isCrossOrigin tells whether two URI do not share the same origin.
  • Uri::isSameOrigin tells whether two URI share the same origin.
  • Uri::getOrigin returns the URI origin as described in the WHATWG URL Living standard specification.
  • Uri::toDisplayString returns the human-readable string representation of the URI as an IRI.
  • Uri::toRfc8089 The method will return null if the URI scheme is not the file scheme
  • Uri::resolve returns a new Uri instance resolve against the current instance.
  • Uri::normalize returns a new Uri instance with a full “normalized-decoded” representation: The URI is normalized (when applicable), and components are percent-decoded. Normalization may contain destructive operation.
  • Uri::withUsername returns a new Uri instance with the updated username component.
  • Uri::withPassword returns a new Uri instance with the updated password component.
  • Uri::toAsciiString returns the URI string representation as per RFC3986
  • Uri::toAsciiString returns the URI string representation as per RFC3987 with the host in Unicode form if available
  • Uri::getUnicodeHost returns the host in Unicode form if available; fallback to its RFC3986 representation otherwise
  • UriTemplate implements the Stringable interface
  • UriTemplate::expandToUri and UriTemplate::expandToUriOrFail
  • UriTemplate::expandToUrl and UriTemplate::expandToUrlOrFail
  • UriTemplate::expandToPsr7Uri and UriTemplate::expandToPsr7UriOrFail
  • UriTemplate::expand and UriTemplate::expandOrFail take a second optional parameter which represents a base URI to resolve the URI from.
  • Dependency to psr/http-factory package which is required for the package.
  • Support for Uri\Rfc3986\Uri and Uri\Whatwg\Url

Fixed

  • UserInfo now can be constructed and mutated even when the user component is not present. It was silently ignored.
  • Uri and Http normalization normalized IP against RFC3986 rules and not WHATWG rules.
  • Uri::getOrigin now follows WHATWG cross-origin definition
  • Uri host encoding compliance to RFC3986 is improved by supporting RFC3986 encoded URI properly
  • Uri parsing with strings started or ended with empty string are no longer allowed
  • Uri space are rawurlencoded.
  • Uri validates urn as per RFC 8141
  • Uri validates mailto scheme as per RFC 6068
  • Uri validates blob scheme as per Blob Definition
  • Uri::getPath no longer trim the leading slashes (the Http class which is a PSR-7 compliant class still do!)

Deprecated

  • BasUri use the Uri class or the uri-component Modifier class depending on your requirements.

Removed

  • None
7.5.1

Full Changelog:

7.5.0

Added

  • Uri::getUsername returns the encoded user component of the URI.
  • Uri::getPassword returns the encoded password component of the URI.
  • BaseUri::isOpaque tells whether a URI is opaque.
  • Using PHP8.4 Deprecated attribute to signal deprecated public API methods and constants.

Fixed

  • Improve PSR-7 Http class implementation.
  • BaseUri::from will compress the IPv6 host to its compressed form if possible.

Deprecated

  • Usage of PSR-7 UriFactoryInterface is deprecated in BaseUri class

Removed

  • None
7.4.1

Added

  • None

Fixed

  • Fix package to avoid PHP8.4 deprecation warnings

Deprecated

  • None

Removed

  • None
7.4.0

Added

  • Uri::fromData
  • Uri::fromRfc8089
  • BaseUri::unixPath
  • BaseUri::windowsPath
  • BaseUri::toRfc8089

Fixed

  • None

Deprecated

  • None

Removed

  • None
7.3.0

Added

  • None

Fixed

Deprecated

  • None

Removed

  • None

Full Changelog: https://github.com/thephpleague/uri/compare/7.2.1...7.3.0

7.2.1

Fix composer.json

7.2.0

Added

  • BasUri::hasIDN

Fixed

  • None

Deprecated

  • None

Removed

  • None

Full Changelog: https://github.com/thephpleague/uri/compare/7.1.0...7.2.0

7.1.0

Added

  • None

Fixed

  • Using the Encoder class to normalize encoding and decoding in all packages

Deprecated

  • None

Removed

  • None

Full Changelog: https://github.com/thephpleague/uri/compare/7.0.0...7.1.0

7.0.0

Added

  • League\Uri\Uri::new
  • League\Uri\Uri::fromComponents
  • League\Uri\Uri::fromServer
  • League\Uri\Uri::fromWindowsPath
  • League\Uri\Uri::fromUnixPath
  • League\Uri\Uri::fromFileContents
  • League\Uri\Uri::fromClient
  • League\Uri\Uri::fromTemplate
  • League\Uri\Http::new
  • League\Uri\Http::fromComponents
  • League\Uri\Http::fromBaseUri
  • League\Uri\Http::fromServer
  • League\Uri\Http::fromTemplate
  • League\Uri\UriTemplate::expandOrFail
  • League\Uri\UriTemplate\Template::expandOrFail
  • League\Uri\UriTemplate\TemplateCanNotBeExpanded
  • League\Uri\UriString::parseAuthority
  • League\Uri\UriString::buildAuthority
  • League\Uri\BaseUri

Fixed

  • League\Uri\UriInfo uri input now supports Stringable and string type.
  • League\Uri\UriTemplate\VariableBag implements the IteratorAggregate interface
  • League\Uri\UriTemplate\Operator to improve internal representation when using UriTemplate features.

Deprecated

  • League\Uri\UriResolver use League\Uri\BaseUri instead
  • League\Uri\Uri::createFromString use League\Uri\Uri::new
  • League\Uri\Uri::createFromUri use League\Uri\Uri::new
  • League\Uri\Uri::createFromComponents use League\Uri\Uri::fromComponents
  • League\Uri\Uri::createFromBaseUri use League\Uri\Uri::fromBaseUri
  • League\Uri\Uri::createFromServer use League\Uri\Uri::fromServer
  • League\Uri\Uri::createFromWindowsPath use League\Uri\Uri::fromWindowsPath
  • League\Uri\Uri::createFromUnixPath use League\Uri\Uri::fromUnixPath
  • League\Uri\Uri::createFromDataPath use League\Uri\Uri::fromFileContents
  • League\Uri\Http::createFromString use League\Uri\Http::new
  • League\Uri\Http::createFromUri use League\Uri\Http::new
  • League\Uri\Http::createFromComponents use League\Uri\Http::fromComponents
  • League\Uri\Http::createFromBaseUri use League\Uri\Http::fromBaseUri
  • League\Uri\Http::createFromServer use League\Uri\Http::fromServer
  • League\Uri\UriTemplate\Template::createFromString use League\Uri\UriTemplate\Template::new

Remove

  • Support for __set_state
  • Support for __debugInfo
  • League\Uri\UriTemplate\VariableBag::all
  • League\Uri\Exceptions\TemplateCanNotBeExpanded use League\Uri\UriTemplate\TemplateCanNotBeExpanded instead
  • League\Uri\UriString class. Class moved to the uri-interfaces package.

Full Changelog: https://github.com/thephpleague/uri/compare/7.0.0-beta.2...7.0.0

7.0.0-beta.2

pre-release

7.0.0-beta.1

Preview release

6.8.0

Added

  • Added PHP8.2+ SensitiveParameter attributes to user information component

Fixed

  • Optimize URI performance for server intensive usage 206 by [@kelunik](https://github.com/kelunik)
  • Improve Template resolution
  • Added PHPBench to benchmark the package main functionnalities.

Deprecated

  • None

Remove

  • Support for PHP7.4 and PHP8.0
6.7.2

Added

  • None

Fixed

  • Http::getPath and Uri::getPath methods returned values are normalized to prevent potential XSS and open redirect vectors.

Deprecated

  • None

Remove

  • None
6.7.1

Added

  • None

Fixed

  • UriInfo::isCrossOrigin method is fix to make it work with any PSR-7 compliant object 205

Deprecated

  • None

Remove

  • None
6.7.0

Added

  • UriInfo::isCrossOrigin method

Fixed

  • None

Deprecated

  • None

Remove

  • None
6.6.0

Added

  • None

Fixed

Deprecated

  • None

Remove

  • Support for PHP7.3
6.5.0

Added

  • Uri::toString as a clean method to return URI string representation.
  • IDNA conversion in now normalize using the Uri-Interface package classes

Fixed

  • conversion host component from ASCII to unicode no longer throw

Deprecated

  • None

Remove

  • Support for PHP7.2
6.4.0

Added

  • HttpFactory a class that implements PSR-17 UriFactoryInterface. The package needs to be present for the class to work.

Fixed

  • Bugfix Uri::formatPath to improve URL encoding in the path component #180 thanks mdawaffe.

Deprecated

  • Nothing

Remove

  • None
6.3.0

Added

  • UriInfo::getOrigin to returns the URI origin as described in the WHATWG URL Living standard specification
  • UriTemplate\Template, UriTemplate\Expression, UriTemplate\VarSpecifier, UriTemplate\VariableBag to improve UriTemplate implementation.
  • Added early support for PHP8

Fixed

  • UriTemplate complete rewrite by reducing deep nested array usage.
  • Exception misleading message see issue #167
  • Uri::withScheme Uri validation failed to catch the empty string as an invalid scheme. #171

Deprecated

  • Nothing

Remove

  • None
6.2.1

Added

  • None

Fixed

  • Bugfix UriTemplate::expand to comply with expansion rules for undefined variables #161 thanks Gabe Sullice
  • Improve package testing settings and environment.

Deprecated

  • Nothing

Remove

  • None
6.2.0

Added

  • None

Fixed

  • None

Deprecated

  • Nothing

Remove

  • Hard dependencies on the ext-mbstring and the ext-fileinfo PHP extensions #154 thanks Nicolas Grekas
6.1.1

Added

  • Nothing

Fixed

  • League\Uri\UriTemplate variables validation and normalization improved

Deprecated

  • Nothing

Remove

  • Nothing
6.1.0

Added

  • League\Uri\UriTemplate a class to handle uri template expansion as described in RFC7560 see PR #153

Fixed

  • improving idn_to_ascii usage see #150 thanks to ntzm

Deprecated

  • Nothing

Remove

  • Nothing
6.0.1

Added

  • Nothing

Fixed

  • Uri should not depend on intl extension if the host is in its ascii form #141

Deprecated

  • Nothing

Remove

  • Nothing
6.0.0

Added

  • League\Uri\UriInfo: to get RFC3986 information from an URI object
  • League\Uri\UriResolver: to resolve or relativize an URI object
  • League\Uri\UriString: to parse or build an URL into or from its components
  • League\Uri\Uri::createFromBaseUri named constructor
  • League\Uri\Uri::createFromDataPath named constructor
  • League\Uri\Uri::createFromPsr7 named constructor
  • League\Uri\Uri::createFromUnixPath named constructor
  • League\Uri\Uri::createFromWindowsPath named constructor
  • League\Uri\Http::createFromBaseUri named constructor

Fixed

  • Improve parsing and building URI
  • All URI object are now finals and supports parameter type widening
  • League\Uri\Uri implements the JsonSerializable interface
  • League\Uri\Http implements the JsonSerializable interface

Deprecated

  • None

Remove

  • support for PHP7.1 and PHP7.0
  • create function defined in the League\Uri namespace replaced by League\Uri\Uri::createFromBaseUri
  • League\Uri\Factory replaced by League\Uri\Uri
  • League\Uri\Data replaced by League\Uri\Uri
  • League\Uri\File replaced by League\Uri\Uri
  • League\Uri\Ftp replaced by League\Uri\Uri
  • League\Uri\Ws replaced by League\Uri\Uri
  • League\Uri\UriException replaced by League\Uri\Contract\UriException
  • League\Uri\AbstractUri internal, replaced by League\Uri\Uri
  • League\Uri\Schemes namespace and all classes inside
  • League\Uri\Uri no longer implements League\Uri\UriInterface
5.3.0

See packages release notes for more informations

Added

  • IPvFuture support

Fixed

  • Adding PHPStan
  • Improve RFC3986 compliance
  • Improve performance

Remove

  • remove mbstring extension requirement
5.2.0

To see individual changes please refer to the following releases changelog:

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport