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

Uuid Paramconverter Laravel Package

mcfedr/uuid-paramconverter

Symfony param converter that turns UUID route parameters into Ramsey UUID objects before they reach your controllers. Type-hint UuidInterface and malformed or missing UUIDs are rejected automatically, with no manual parsing or validation boilerplate.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Public identifier strategy — whether resources are addressed by UUID (non-enumerable, safe to expose) rather than sequential integers. This package makes the HTTP boundary cheap: route params, JSON, and forms all speak UuidInterface instead of strings.
  • Build vs. buy vs. fork — the package is essentially three classes (ParamConverter, Normalizer, Form Type). Buy = one composer require and ~1 day of integration; build = custom ValueResolver + normalizer (~1–2 days); fork = vendor a few hundred LOC with zero upstream risk. That cost comparison is the actual decision.
  • API contract consistency — the Normalizer decides the canonical wire format for UUIDs (hyphenated string vs. binary, null handling) across endpoints and API versions, which is a product-visible contract choice, not just an engineering one.
  • Back-office and support tooling — the Form Type lets operators paste or enter UUIDs with validation, which unblocks admin panels, data-migration forms, and support workflows when IDs stop being readable integers.
  • Stack fit (important) — this is a Symfony package (SensioFrameworkExtraBundle ParamConverter, Symfony Serializer, Symfony Forms), not a Laravel one. On Laravel the same capability is nearly free natively (HasUuids, route model binding on uuid keys, custom casts), so the decision there is "do we need anything at all," not "which package."
  • Platform-currency cost (new in 4.2.0) — the 4.2.0 release is a support-matrix change only ("drops support for older PHP and Symfony"). That converts a previously abstract compatibility risk into a concrete upgrade prerequisite: adoption now implies a minimum PHP/Symfony floor we must already meet or pay to reach. The decision shifts from "is this package good?" to "does adopting it force a framework upgrade we hadn't budgeted?"
  • Roadmap risk register — ParamConverter is deprecated in Symfony 6.2+ in favor of argument ValueResolvers. 4.2.0 raises the version floor but shows no sign of migrating off ParamConverter, so the deprecation exposure is now the dominant open risk rather than a footnote.

When to Consider This Package

  • You are on a Symfony version still inside the 4.2.0 support window, already use ramsey/uuid v4, and still use ParamConverter-based controller arguments. Then this is a reasonable, auditable shortcut.
  • You want typed UuidInterface controller arguments with automatic 404s on malformed IDs, plus serializer and form integration, without writing three small classes yourself.
  • You are comfortable treating it as a code sample rather than a library — small enough to fork or vendor if upstream goes quiet.
  • You are willing to treat 4.2.0 as a maintenance signal, not a feature: the project is not abandoned, but the changelog is a single line with no detail. Read composer.json for the actual php and symfony/* constraints and the tag diff before assuming compatibility.

Look elsewhere (or copy the pattern in-house) if:

  • You are on Laravel. This will not fit; use HasUuids/HasUniqueStringIds, uuid route keys, validation rules, and API Resources instead.
  • You are on an older PHP/Symfony than 4.2.0 now permits. The release is a breaking change for existing consumers — confirm our floor first; if we are behind it, adoption now bundles a framework upgrade into a "one-day glue library" decision and the cost/benefit inverts.
  • You are on Symfony 6.2+ and have moved off ParamConverter. A ~20-line ValueResolver plus a normalizer covers it; symfony/uid is an alternative if you are not already committed to Ramsey. This remains the recommended path and 4.2.0 does not change it.
  • You need Doctrine persistence types — that is ramsey/uuid-doctrine, a separate concern.
  • You need maintenance guarantees beyond "a tag was pushed." Still 18 stars, 0 dependents, a single maintainer, and a ~3.5-year gap between releases. One support-matrix bump does not establish a security response process or a documented support policy.
  • You need binary(16) storage, ULIDs, or non-Ramsey ID types.

How to Pitch It (Stakeholders)

This is a tiny glue library that connects an existing UUID library (ramsey/uuid) to Symfony's web layer, so URL parameters, JSON responses, and forms all handle UUID objects instead of raw strings. It is not a platform bet: 18 stars, zero dependent packages, one maintainer, MIT licensed. The honest framing is "a three-class reference implementation we can adopt in a day or copy into our codebase in an afternoon," not "a dependency we standardize on."

What changed: version 4.2.0 dropped support for older PHP and Symfony. Read that two ways. Positive — the maintainer is still alive after a long silence, and the package is no longer implicitly pinned to an unsupported platform. Negative — the only thing this release does is raise the floor, it is a breaking change for anyone downstream, and it still does not address the real structural issue, which is that ParamConverter is a deprecated Symfony extension point. So the release improves the "is it abandoned?" question and leaves the "is it on a deprecated path?" question untouched.

For engineering: verify our PHP/Symfony versions against the 4.2.0 constraints before anything else — that is now the gating check, not the star count. If we clear the floor and still use ParamConverter, adopt; if we have already moved to ValueResolvers, port the resolver/normalizer pattern in-house and skip the dependency. For executives: license and integration cost remain effectively zero, the upside is cleaner public API identifiers and less controller boilerplate, and the downside is still bounded because the code is small enough to fork. The two things to decide deliberately rather than inherit are (1) whether adopting this drags a framework upgrade into scope, and (2) that ParamConverter itself is deprecated — we should either commit to migrating to a ValueResolver or consciously accept the legacy path. A single one-line release note is not evidence of a maintenance commitment; it is evidence the lights are on.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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