Weave 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 Manipulations Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for URL/URI handling: Whether to invest engineering time in home-grown URL normalization, canonicalization, and query-string utilities, or lean on a maintained library. This package is a useful reference case for that decision — it shows how a once-reasonable utility abstraction gets consolidated upstream, and why "write it ourselves" is often cheaper than inheriting a dead dependency.
  • Roadmap gating for URL-dependent features: Anything in the backlog that touches URI semantics — canonical URLs for SEO, UTM/campaign parameter injection, affiliate and redirect link building, multi-tenant subdomain and base-path rewriting, signed/expiring link construction, locale/currency path prefixes — depends on a reliable manipulation layer. This package establishes that the capability is legitimately needed in a web product, not that this package is the answer.
  • Dependency lifecycle policy: A concrete input for a "no archived dependencies" rule. With zero dependents, a 2018 final release, and an archived repo, it is a clean example to cite when formalizing a policy on abandonment risk and unpatched security exposure.
  • Migration/vendor consolidation planning: If you inherit a codebase using it, the decision this really informs is "how fast do we get off it?" — not whether to adopt. Useful for sizing a technical-debt line item in a quarterly plan.
  • Platform/version constraints: It supports the product decision of how long to hold PHP 7.x-era stacks. If you're modernizing PHP or Laravel, this dependency is a forcing function in that upgrade plan.

When to Consider This Package

Consider it only in a narrow, legacy scenario:

  • You are maintaining an application already pinned to the 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.
  • You need a short-term, throwaway shim to keep an existing code path working while you migrate — explicitly time-boxed and tracked as debt.
  • You want a read-only reference for API design (how UriModifier-style add/remove/replace semantics should behave) before writing your own thin wrapper.

Look elsewhere — which is almost always the right call:

  • Any new build. Use 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.
  • Anything touching untrusted input. An archived library will not receive CVE fixes. URI parsing is a classic attack surface (SSRF, open redirect, path traversal, host confusion). This is a hard blocker for security-conscious products.
  • Laravel-native usage. For most product needs, 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.
  • Teams without capacity to own a fork. If the answer is "we'll fork and maintain it," price that at a recurring engineering cost, not a one-off.

How to Pitch It (Stakeholders)

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.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource