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 Template Laravel Package

guzzlehttp/uri-template

RFC 6570 URI Template expansion for PHP. Build URLs by substituting variables into templates, handling reserved characters, query strings, and fragments. Lightweight Guzzle component installable via Composer, with tests and changelog included.

View on GitHub
Deep Wiki
Context7
v2.0.0

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
v1.0.10

Fixed

  • Fixed prefix modifiers counting Unicode code points and pct-encoded characters instead of bytes
v1.0.9

Changed

  • Pass explicit trim characters ahead of the PHP 8.6 trim default change
v1.0.8

Fixed

  • Report PCRE errors when URI template value encoding fails
v1.0.7

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
v1.0.6

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
v1.0.5

Changed

  • Officially support PHP 8.5
v1.0.4

Changed

  • Officially support PHP 8.4
v1.0.3

Changed

  • Updated link to RFC 6570
v1.0.2

Changed

  • Officially support PHP 8.2 and 8.3

Fixed

  • Fixed using 0 as an expanded value
v1.0.1

Changed

  • Officially support PHP 8.1
v1.0.0

Changed

  • Dropped support for PHP 7.1
v0.2.0

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
v0.1.1

Fixed

v0.1.0

This is the first release of where we move the UriTemplate class from guzzlehttp/guzzle in a separate package here.

Tagging as a zero version to allow any breaking changes to next releases.

Please test this out and report any issue.

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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky