league/uri-manipulations
League URI Manipulations provides immutable, PSR-7-friendly tools for modifying URIs in PHP. Add, remove, update, or conditionally alter query parameters, paths, and other components through a clean, composable API.
Consider it only in a narrow, legacy scenario:
league/uri-components v5-era split-packaging generation, on an older PHP runtime, and a full league/uri upgrade is out of scope for the current release.UriModifier-style add/remove/replace semantics should behave) before writing your own thin wrapper.Look elsewhere — which is almost always the right call:
league/uri v7 instead. The manipulation capabilities this package offered were folded into the main library as immutable with* methods and modifier helpers, and it is actively maintained with current PHP support and security patching.Illuminate\Support\Str, the UrlGenerator, and the framework's route/URL helpers cover 80% of cases without any extra dependency. Reach for a dedicated URI library only when you need RFC 3986 correctness — normalization, percent-encoding, IDN, relative-reference resolution.To executives (30-second version): A PHP library for manipulating web addresses — building, rewriting, and normalizing links. It's MIT-licensed and was solid in its day, but the project is archived, last shipped in March 2018, and has no downstream dependents. We should not adopt it. There is no licensing cost, but there is real risk: no security patches, no PHP version support, and no maintainer. The capability is still needed, so the recommendation is to standardize on its actively maintained successor, league/uri, which absorbed its functionality.
To engineering: Treat as deprecated-by-consolidation. Do not add it to new services. If it appears in a dependency tree, it's a signal of an aging stack and belongs in the upgrade backlog. Migration to league/uri v7 is typically small and mostly mechanical — the manipulation concepts carry over, though call sites move from static modifier calls to the current immutable interface. Budget it as a contained refactor rather than a project.
To security/compliance: Flag any occurrence as an unmaintained third-party component for dependency review. No known active exploits, but no remediation path either — that's the point.
Bottom line: the problem this package solves is real and worth funding; this specific package is a sunset asset. Approve the capability, reject the dependency, and spend the saved time on the one-time migration to the maintained library.
How can I help you explore Laravel packages today?