vdb/uri
A Laravel/PHP package for building, parsing, and manipulating URIs with a fluent, immutable API. Compose paths and query strings, validate URL components, and work with clean URI value objects in your applications.
vdb/uri is a low-level URI parser/value-object library based on RFC 3986, not a Laravel framework package. It fits as an internal utility for URI parsing, normalization, comparison, and allow-list validation in integration-heavy areas: webhook callback URLs, OAuth redirect URIs, tenant domains, signed URLs, outbound endpoint validation, and canonical resource identifiers. It should not replace Laravel routing, URL generation, or HTTP client behavior. Use it behind an application-owned abstraction rather than leaking its classes across controllers, jobs, and domain code.league/uri, Guzzle PSR-7, or Symfony components. A small adapter layer would make adoption reversible.UriInterface? How does its output differ from parse_url, league/uri, Guzzle, and browser URL parsing? Is it safe for security-sensitive allow-listing, or only non-critical parsing? Can the team fork/vendor it under MIT if upstream stalls?parse_url or simpler string manipulation. It is a poor fit as a foundational dependency for all URL handling unless a proof of concept proves a concrete gap. Prefer wrapping it in an application service such as UriNormalizer or ExternalUrlValidator; if PSR-7 compatibility is required, use an adapter or prefer a PSR-7-native URI implementation.vdb/uri against current behavior and league/uri/parse_url using representative URLs: OAuth callbacks, webhooks, signed URLs, encoded paths, IDN domains, IPv6, relative links, and malicious inputs. Replace only isolated call sites behind feature flags, not Laravel routing or framework URL generation.mbstring or intl. Add static analysis and contract tests around parsing, normalization, and resolution. If the package is not PSR-7 compatible, document that limitation and keep it out of HTTP client abstractions.league/uri or another implementation remains feasible.How can I help you explore Laravel packages today?