sabre/uri
Functions for making sense out of URIs.
3.1.0
39M downloads/mo
#677 most downloaded on Packagist
sabre-io/uri
What this package is like to depend on
Last release 3 months ago
26 Apr 2026
Release timing varies
gaps range from 8 days to 1.6 years
Nearly every release is documented
notes for 28 of 28 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
28 releases · first in 2014
2 releases in the last 12 months
see the full history below
Release timeline
28 releases · Nov 2014 to Apr 2026Releases
latest 28-
3.1.026 Apr 2026Release notes
Open source →3.1.0 (2026-04-26)
- #139 add rector check (@ChristophWurst @phil-davis)
- #140 drop PHP 7.4 8.0 8.1 and support PHP 8.2 and up (@DerDreschner @ChristophWurst @phil-davis)
This release supports PHP 8.2 and up. That is specified in
composer.jsonso consumers should automatically select it only for projects that have minimum PHP 8.2 support.The 3.0.* release series, supporting PHP 7.4 8.0 8.1, will have bugfixes backported if relevant/needed for some time.
Release notes
Open source →- #139 add rector check (@ChristophWurst @phil-davis)
- #140 drop PHP 7.4 8.0 8.1 and support PHP 8.2 and up (@DerDreschner @ChristophWurst @phil-davis)
-
3.0.301 Apr 2026Release notes
Open source →3.0.3 (2026-04-01)
- #124 phpstan major version 2 (@phil-davis)
- #127 add PHP 8.5 to CI workflows (@phil-davis)
- #133 refactor: add and apply rector (ChristophWurst)
This release is confirmed to work with PHP 7.4 through 8.5.
Release notes
Open source →- #124 phpstan major version 2 (@phil-davis)
- #127 add PHP 8.5 to CI workflows (@phil-davis)
- #133 refactor: add and apply rector (@ChristophWurst)
-
3.0.204 Sep 2024Release notes
Open source →3.0.2 (2024-09-04)
- #98: Update readme and test (@phil-davis)
- #100: Update CI and test things (@phil-davis)
- #101: Create dependabot.yml (@DeepDiver1975)
- #102: Bump actions/checkout from 3 to 4 (@DeepDiver1975)
- #103: Change array<int...> to list<...> in PHP doc (@phil-davis)
- #104: Add PHP 8.3 to CI (@phil-davis)
- #105: add convertDeprecationsToExceptions option to unit test settings (@phil-davis)
- and other CI and analysis/test tool changes
Release notes
Open source →- #98: Update readme and test (@phil-davis)
- #100: Update CI and test things (@phil-davis)
- #101: Create dependabot.yml (@DeepDiver1975)
- #102: Bump actions/checkout from 3 to 4 (@DeepDiver1975)
- #103: Change array<int...> to list<...> in PHP doc (@phil-davis)
- #104: Add PHP 8.3 to CI (@phil-davis)
- #105: add convertDeprecationsToExceptions option to unit test settings (@phil-davis)
- and other CI and analysis/test tool changes
-
3.0.109 Jun 2023Release notes
Open source →3.0.1 (2023-06-09)
- #89: Call static assert functions with self:: (tests only) (@phil-davis)
- #90: Implement phpstan strict rules and fix edge cases for paths that have "0" (@phil-davis)
- #91: Use newer GitHub workflow action versions (CI only) (@phil-davis)
- #93: Minor cs-fixer change (@phil-davis)
Release notes
Open source →- #89: Call static assert functions with self:: (tests only) (@phil-davis)
- #90: Implement phpstan strict rules and fix edge cases for paths that have "0" (@phil-davis)
- #91: Use newer GitHub workflow action versions (CI only) (@phil-davis)
- #93: Minor cs-fixer change (@phil-davis)
-
3.0.026 Sep 2022Release notes
Open source →3.0.0 (2022-09-26)
- #82: Add empty host and leading slash to Windows file paths (@peterpostmann @phil-davis)
This changes the behavior of parsing of some Windows file paths. See the discussions in PR #82 #71 #25 and issue #31 #81
Release notes
Open source →- #82: Add empty host and leading slash to Windows file paths (@peterpostmann @phil-davis)
-
2.3.427 Aug 2024Release notes
Open source →2.3.4 (2024-08-27)
- #111: apply cs-fixer 3.54.0 changes to v2 branch (@phil-davis)
- #115: Add PHP 8.3 to CI for v2 branch (@phil-davis)
- #116: Add PHP 8.4 to CI for v2 branch (@phil-davis)
- #117: check for nullable_type_declaration (@phil-davis)
Most of this is CI tooling to support PHP 8.3 and 8.4, which demonstrates that the tests pass with those latest PHP versions.
There are some code format changes applied by php-cs-fixer. They do not effect behavior.Release notes
Open source →- #111: apply cs-fixer 3.54.0 changes to v2 branch (@phil-davis)
- #115: Add PHP 8.3 to CI for v2 branch (@phil-davis)
- #116: Add PHP 8.4 to CI for v2 branch (@phil-davis)
- #117: check for nullable_type_declaration (@phil-davis)
-
2.3.309 Jun 2023Release notes
Open source →2.3.3 (2023-06-09)
- #89: Call static assert functions with self:: (tests only) (@phil-davis)
- #90: Implement phpstan strict rules and fix edge cases for paths that have "0" (@phil-davis)
- #91: Use newer GitHub workflow action versions (CI only) (@phil-davis)
- #93: Minor cs-fixer change (@phil-davis)
Note: This is a patch release for the "old" major version 2 series. There will also be a 3.0.1 release coming with the same patches for the current major version 3.
Release notes
Open source →- #89: Call static assert functions with self:: (tests only) (@phil-davis)
- #90: Implement phpstan strict rules and fix edge cases for paths that have "0" (@phil-davis)
- #91: Use newer GitHub workflow action versions (CI only) (@phil-davis)
- #93: Minor cs-fixer change (@phil-davis)
-
2.3.219 Sep 2022Release notes
Open source →2.3.2 (2022-09-19)
- #83: Revert windows file paths change (was PR 71). See issue 81 (@phil-davis)
See the discussion in issue #81 and PR #83 and links from there.
This patch release reverts to the previous behavior for Windows file paths like file:///C:/path/file.extThe newer behavior will be released in a major version release, so that consumers can adjust to the change, if needed, in a more controlled manner.
Release notes
Open source →- #83: Revert Windows file paths change (was PR 71). See issue 81 (@phil-davis)
-
2.3.130 Aug 2022Release notes
Open source →2.3.1 (2022-08-30)
- #77: Add PHP 8.2 to CI - confirms that the code is working with PHP 8.2 (@phil-davis)
- #78: Raise phpstan to level 8 (@phil-davis)
- #79: Specify detailed return type of parse() (@phil-davis)
Release notes
Open source →- #77: Add PHP 8.2 to CI - confirms that the code is working with PHP 8.2 (@phil-davis)
- #78: Raise phpstan to level 8 (@phil-davis)
- #79: Specify detailed return type of parse() (@phil-davis)
-
2.3.017 Aug 2022Release notes
Open source →- #74: Minimum PHP 7.4 - drops PHP 7.1 7.2 and 7.3 and adds more type declarations (@phil-davis)
-
2.2.419 Sep 2022Release notes
Open source →2.2.4 (2022-09-19)
- #83: Revert windows file paths change (was PR 71). See issue 81 (@phil-davis)
See the discussion in issue #81 and PR #83 and links from there.
This patch release reverts to the previous behavior for Windows file paths like file:///C:/path/file.extThe Windows file paths change was released in 2.2.3. So this 2.2.4 release allows anyone on 2.2.3 to bump just the patch version to 2.2.4 to get back the old behavior. This will be relevant to consumers who are still using PHP 7.1 7.2 or 7.3, and are thus on 2.2.. The 2.2. series is the last release series for those PHP versions.
The newer behavior will be released in a major version release, so that consumers can adjust to the change, if needed, in a more controlled manner. That release will also require a minimum of PHP 7.4
Release notes
Open source →- #83: Revert Windows file paths change (was PR 71). See issue 81 (@phil-davis)
-
2.2.317 Aug 2022Release notes
Open source →- #71: Add empty host and trailing slash to Windows file paths (@peterpostmann @phil-davis)
- #70: Update .gitattributes (@cedric-anne)
-
2.2.204 Nov 2021Release notes
Open source →- #69: fix issue with missing slash in URI parse (@41i-6h0rb4n1 @phil-davis)
-
2.2.103 Oct 2020Release notes
Open source →- #57: Added Support for PHP 8.0 (@phil-davis)
- #51 #52 #53 #54: Update CI and unit test scripts (@phil-davis)
-
2.2.031 Jan 2020Release notes
Open source →- #45: Added Support for PHP 7.4 (@phil-davis, @staabm)
- #47: Dropped Support for PHP 7.0 (@phil-davis)
- #49: Updated the testsuite for phpunit8 (@phil-davis)
- #46: Added phpstan coverage (@phil-davis)
-
2.1.309 Sep 2019 -
2.1.225 Jun 2019Release notes
Open source →- #39: Some PHPDoc improvements.
- PHPStan support.
- Adopted the symfony php-cs-fixer standard.
- Now testing against PHP 7.2 and 7.3.
-
2.1.120 Feb 2017Release notes
Open source →- #15: Don't throw an error when resolving a URI which path component is empty.
- #16: Correctly parse urls that are only a fragment
#.
-
2.1.007 Dec 2016Release notes
Open source →- Now throwing
InvalidUriExceptionif a uri passed to theparsefunction is invalid or could not be parsed. - #11: Fix support for URIs that start with a triple slash. PHP's
parse_uri()doesn't support them, so we now have a pure-php fallback in case it fails. - #9: Fix support for relative URI's that have a non-uri encoded colon
:in them.
- Now throwing
-
2.0.127 Oct 2016 -
2.0.007 Oct 2016 -
1.2.120 Feb 2017 -
1.2.007 Dec 2016Release notes
Open source →- Now throwing
InvalidUriExceptionif a uri passed to theparsefunction is invalid or could not be parsed. - #11: Fix support for URIs that start with a triple slash. PHP's
parse_uri()doesn't support them, so we now have a pure-php fallback in case it fails. - #9: Fix support for relative URI's that have a non-uri encoded colon
:in them.
- Now throwing
-
1.1.127 Oct 2016 -
1.1.008 Mar 2016Release notes
Open source →- #6: PHP's
parse_url()corrupts strings if they contain certain non ascii-characters such as Chinese or Hebrew. sabre/uri'sparse()function now percent-encodes these characters beforehand.
- #6: PHP's
-
1.0.129 Apr 2015Release notes
Open source →- #4: Using php-cs-fixer to automatically enforce coding standards.
- #5: Resolving to and building
mailto:urls were not correctly handled.
-
1.0.027 Jan 2015Release notes
Open source →- Added a
normalizefunction. - Added a
buildUrifunction. - Fixed a bug in the
resolvewhen only a new fragment is specified.
San José, CalConnect XXXII release!
- Added a
-
0.0.118 Nov 2014Release notes
Open source →- First version!
- Source was lifted from sabre/http package.
- Provides a
resolveand asplitfunction. - Requires PHP 5.4.8 and up.