PackageTrack
Sign in Get early access

guzzlehttp/uri-template

A polyfill class for uri_template of PHP

v2.0.0 273M downloads/mo #105 most downloaded on composer guzzle/uri-template

What this package is like to depend on

Last release 1 months ago

20 Jul 2026

Release timing varies

gaps range from 8 days to 1.9 years

Nearly every release is documented

notes for 15 of 15 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

15 releases · first in 2020

6 releases in the last 12 months

see the full history below

Release timeline

15 releases · Jun 2020 to Jul 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 15
  1. v2.0.0 20 Jul 2026
    Release notes

    Changed

    • Invalid URI template syntax now throws InvalidArgumentException instead of expanding partially
    • Literal template text is now validated and valid non-ASCII literals are pct-encoded
    • URI template variable names and modifiers are now validated according to RFC 6570
    • Prefix modifiers are now rejected for list and map values
    • Referenced variable values are now validated before expansion
    • Dense zero-indexed arrays are expanded as lists and sparse or mixed-key arrays as maps
    • UriTemplate is now non-instantiable; use UriTemplate::expand() statically
    • Nested null values in lists and maps are now treated as undefined members and omitted
    • Variable values must now be valid UTF-8; invalid byte sequences throw InvalidArgumentException
    • Booleans now expand as 1 and 0 at every nesting level
    • Non-finite floats now throw InvalidArgumentException instead of expanding as INF or NAN
    • Non-empty lists whose members are all null are now treated as defined variables
    • Variable specifier whitespace padding is now detected with the real whitespace set
    • UriTemplate now rejects native PHP serialization and unserialization
    • Referenced variable values are now detached and formed before expansion begins
    • Template syntax is now validated for every expression before variable values are formed
    • Stringable objects are now converted to strings once per value position while values are formed
    • Invalid UTF-8 in variable values and map keys is now rejected while values are formed
    • Finite floats are now converted to their expansion strings while values are formed
    • Exceptions thrown by __toString() now surface while values are formed, before any output exists

    Fixed

    • Fixed invalid template expressions being accepted as query and path-style parameter names
    • Fixed prefix modifiers counting bytes instead of Unicode code points and pct-encoded triplets
    • Fixed unsupported variable shapes producing warnings, conversion errors, or Array output
    • Fixed path-style parameter explode rendering empty members as name= instead of bare name
    • Fixed map keys not using the operator's allow set under reserved and fragment expansion
    • Fixed map explode rendering empty members as name= instead of bare name for unnamed operators
    • Fixed the documented variables array type rejecting integer keys for numeric variable names
    • Fixed all-null maps throwing with prefix modifiers instead of being skipped as undefined
    • Fixed prefix modifiers splitting Unicode code points encoded as multiple pct-encoded triplets
    • Fixed path-style composites rendering bare name instead of name= for empty joined members
    • Fixed null nested query array members being rejected for their keys instead of being omitted
    • Fixed float values expanding with the locale decimal separator on PHP versions before 8.0
    • Fixed PCRE engine failures on very long variable names being reported as invalid template syntax
    • Fixed invalid UTF-8 errors for list and map members not reporting the member path
    • Fixed exception messages embedding raw controls or malformed UTF-8 from expressions and map keys
    • Fixed invalid UTF-8 in literal text reported at the segment offset, not the first invalid byte
    • Fixed PCRE engine failures during literal text validation being reported as invalid UTF-8
    • Fixed PCRE engine failures during variable UTF-8 validation not being reported as runtime errors
    • Fixed PCRE engine failures during invalid UTF-8 offset recovery being reported as invalid UTF-8
    Open source →
    Release notes

    Changed

    • Invalid URI template syntax now throws InvalidArgumentException instead of expanding partially
    • Literal template text is now validated and valid non-ASCII literals are pct-encoded
    • URI template variable names and modifiers are now validated according to RFC 6570
    • Prefix modifiers are now rejected for list and map values
    • Referenced variable values are now validated before expansion
    • Dense zero-indexed arrays are expanded as lists and sparse or mixed-key arrays as maps
    • UriTemplate is now non-instantiable; use UriTemplate::expand() statically
    • Nested null values in lists and maps are now treated as undefined members and omitted
    • Variable values must now be valid UTF-8; invalid byte sequences throw InvalidArgumentException
    • Booleans now expand as 1 and 0 at every nesting level
    • Non-finite floats now throw InvalidArgumentException instead of expanding as INF or NAN
    • Non-empty lists whose members are all null are now treated as defined variables
    • Variable specifier whitespace padding is now detected with the real whitespace set
    • UriTemplate now rejects native PHP serialization and unserialization
    • Referenced variable values are now detached and formed before expansion begins
    • Template syntax is now validated for every expression before variable values are formed
    • Stringable objects are now converted to strings once per value position while values are formed
    • Invalid UTF-8 in variable values and map keys is now rejected while values are formed
    • Finite floats are now converted to their expansion strings while values are formed
    • Exceptions thrown by __toString() now surface while values are formed, before any output exists

    Fixed

    • Fixed invalid template expressions being accepted as query and path-style parameter names
    • Fixed prefix modifiers counting bytes instead of Unicode code points and pct-encoded triplets
    • Fixed unsupported variable shapes producing warnings, conversion errors, or Array output
    • Fixed path-style parameter explode rendering empty members as name= instead of bare name
    • Fixed map keys not using the operator's allow set under reserved and fragment expansion
    • Fixed map explode rendering empty members as name= instead of bare name for unnamed operators
    • Fixed the documented variables array type rejecting integer keys for numeric variable names
    • Fixed all-null maps throwing with prefix modifiers instead of being skipped as undefined
    • Fixed prefix modifiers splitting Unicode code points encoded as multiple pct-encoded triplets
    • Fixed path-style composites rendering bare name instead of name= for empty joined members
    • Fixed null nested query array members being rejected for their keys instead of being omitted
    • Fixed float values expanding with the locale decimal separator on PHP versions before 8.0
    • Fixed PCRE engine failures on very long variable names being reported as invalid template syntax
    • Fixed invalid UTF-8 errors for list and map members not reporting the member path
    • Fixed exception messages embedding raw controls or malformed UTF-8 from expressions and map keys
    • Fixed invalid UTF-8 in literal text reported at the segment offset, not the first invalid byte
    • Fixed PCRE engine failures during literal text validation being reported as invalid UTF-8
    • Fixed PCRE engine failures during variable UTF-8 validation not being reported as runtime errors
    • Fixed PCRE engine failures during invalid UTF-8 offset recovery being reported as invalid UTF-8

    Removed

    • Dropped support for PHP 7.2 and 7.3
    Open source →
  2. v1.0.10 17 Jul 2026
    Release notes

    Fixed

    • Fixed prefix modifiers counting Unicode code points and pct-encoded characters instead of bytes
    Open source →
    Release notes

    Fixed

    • Fixed prefix modifiers counting Unicode code points and pct-encoded characters instead of bytes
    Open source →
  3. v1.0.9 08 Jul 2026
    Release notes

    Changed

    • Pass explicit trim characters ahead of the PHP 8.6 trim default change
    Open source →
    Release notes

    Changed

    • Pass explicit trim characters ahead of the PHP 8.6 trim default change
    Open source →
  4. v1.0.8 23 Jun 2026
    Release notes

    Fixed

    • Report PCRE errors when URI template value encoding fails
    Open source →
    Release notes

    Fixed

    • Report PCRE errors when URI template value encoding fails
    Open source →
  5. v1.0.7 12 Jun 2026
    Release notes

    Fixed

    • Fixed the operator's leading character being omitted when defined variables expand to empty strings
    • Fixed non-finite float values emitting coercion warnings on PHP 8.5
    Open source →
    Release notes

    Fixed

    • Fixed the operator's leading character being omitted when defined variables expand to empty strings
    • Fixed non-finite float values emitting coercion warnings on PHP 8.5
    Open source →
  6. v1.0.6 23 May 2026
    Release notes

    Fixed

    • Fixed empty nested arrays adding empty components to exploded query expansions
    • Fixed nested query array keys being double-encoded during exploded query expansion
    • Fixed reserved and fragment expansion preserving existing pct-encoded triplets in variable values
    Open source →
    Release notes

    Fixed

    • Fixed empty nested arrays adding empty components to exploded query expansions
    • Fixed nested query array keys being double-encoded during exploded query expansion
    • Fixed reserved and fragment expansion preserving existing pct-encoded triplets in variable values
    Open source →
  7. v1.0.5 22 Aug 2025
    Release notes

    Changed

    • Officially support PHP 8.5
    Open source →
    Release notes

    Changed

    • Officially support PHP 8.5
    Open source →
  8. v1.0.4 03 Feb 2025
    Release notes

    Changed

    • Officially support PHP 8.4
    Open source →
    Release notes

    Changed

    • Officially support PHP 8.4
    Open source →
  9. v1.0.3 03 Dec 2023
    Release notes

    Changed

    • Updated link to RFC 6570
    Open source →
    Release notes

    Changed

    • Updated link to RFC 6570
    Open source →
  10. v1.0.2 27 Aug 2023
    Release notes

    Changed

    • Officially support PHP 8.2 and 8.3

    Fixed

    • Fixed using 0 as an expanded value
    Open source →
    Release notes

    Changed

    • Officially support PHP 8.2 and 8.3

    Fixed

    • Fixed using 0 as an expanded value
    Open source →
  11. v1.0.1 07 Oct 2021
    Release notes

    Changed

    • Officially support PHP 8.1
    Open source →
  12. v1.0.0 14 Aug 2021
    Release notes

    Changed

    • Dropped support for PHP 7.1
    Open source →
  13. v0.2.0 21 Jul 2020
    Release notes

    Added

    • Support PHP 7.1 and 8.0

    Changed

    • Renamed GuzzleHttp\Utility\ to GuzzleHttp\UriTemplate\

    Fixed

    • Delegate RFC 3986 query string encoding to PHP
    • Fixed some bugs when parts ofs values are not strings
    Open source →
  14. v0.1.1 30 Jun 2020
    Release notes

    Fixed

    Open source →
  15. v0.1.0 30 Jun 2020
    Release notes

    Added

    • Moved the UriTemplate class in this package
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive