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

Has Parameters Laravel Package

timacdonald/has-parameters

Laravel package for attaching flexible key-value parameters to Eloquent models, stored as JSON. A clean API lets you get, set, check, and remove parameters without extra tables or migrations.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. A small, framework-native Laravel package that attaches arbitrary key/value parameters to route definitions and exposes them through Laravel's standard route parameter bag — no new service, storage engine, or runtime. As a TPM, the leverage is that it turns a recurring class of product asks — "make behavior differ per route/tenant/experiment without changing the URL" — into a definition-time concern rather than a schema or endpoint redesign. It is a contextual metadata primitive, not a feature-flag platform: no evaluation SDK, no admin UI, no caching, no targeting rules. That ceiling is fine as long as we frame it as plumbing that product logic reads from, not as the flag system itself.

Integration feasibility. High. For a Laravel team this is a composer require plus route-definition changes; a spike is an afternoon. There is no infrastructure work, no data migration risk if the route-scoped semantics hold, and no coupling to our config, cache, or experiment layers — though it overlaps with all three, so the boundary must be stated explicitly: parameters are route-scoped context, not application config.

Technical risk. Low-to-moderate, and mostly not about this release.

  • Release risk (low). v1.5.3 is a dependency-constraint bump adding Laravel 13 support — additive, patch-level, no API change. Nothing to remediate.
  • Forward-compatibility signal (positive). Explicit readiness for the next Laravel major reduces the risk of being pinned out of an upgrade window — the usual way small packages become liabilities.
  • Maintainer/bus-factor risk (moderate). Single maintainer, 229 stars, a compat-only release pattern. Treat as feature-complete/maintenance-mode and plan accordingly.
  • Pattern risk (moderate). Values live outside the URL, so they are invisible to logs, analytics, and cache keys by default; debugging "why did this route behave differently" becomes harder unless we define a convention up front.
  • Evaluation confidence (material). No prior artifact inventory and no verified diff against the pinned version — everything here is inferred from the release note and the package's known design.

Key questions.

  1. Which product surfaces are candidates (feature gating, locale overrides, auth hints, per-route experiment cohorts), and what is the expected number of parameters per route? (Single digits → fine; broad use → revisit.)
  2. Confirm the parameter-bag semantics against the pinned version — route-scoped vs. record-scoped — before committing to a use case.
  3. Do any consumers need to query or report on parameter values? If yes, this is the wrong layer.
  4. Does the package's route-caching compatibility cover our deploy topology (cached routes in prod, cleared in CI)?
  5. Who is the accountable owner if the maintainer goes dormant — fork or vendor?

Integration Approach

Stack fit. Native Laravel, composes cleanly with existing models, middleware, and route groups. It does not compete with our config or cache layers, but it can drift into them — so we should state the rule once: parameters are route-scoped, read-time context; anything that must be queried, audited, or toggled by non-engineers belongs elsewhere.

Migration path. Greenfield addition; no migration from an existing system. Sequence:

  1. Pin ^1.5 and confirm the constraint resolves on our target Laravel branch.
  2. Add parameters to one low-risk route group and one product use case (e.g., a cohort flag or locale hint) behind a clear read path.
  3. Establish a house convention — namespaced keys (e.g. billing.flow, exp.checkout_v2), documented value types, and a short registry of known keys. This substitutes for the schema and governance the pattern does not provide.
  4. Only then expand to additional route groups; re-review before the second consumer lands.

Compatibility. v1.5.3 is backward-compatible with v1.5.2 by construction (constraint widen only). Verify the composer.lock diff on upgrade — if other packages move, review that, not this one. Confirm our CI matrix actually covers the PHP/Laravel pair the release note references rather than trusting the "Laravel 13" framing.

Sequencing. Treat the v1.5.3 bump as an upgrade-window enabler, not a feature to schedule: slot it into the next routine dependency-refresh train, no dedicated workstream. Gate broader adoption of the pattern on the pilot and the key-registry convention landing first — otherwise each squad will invent its own keys.

Operational Impact

Maintenance. Near-zero run cost: no daemon, no cron, no config surface. The real obligation is governance — without a key registry and a "new key requires registry entry" review rule, parameters become an undocumented shadow configuration that product and support cannot reason about or safely remove. Budget a lightweight review rule, not engineering time.

Support. Community-supported, single maintainer, no SLA. Acceptable for non-critical contextual plumbing; not acceptable if it becomes load-bearing for entitlements, pricing, or access control. If it does, plan to vendor the (small) source and own it.

Scaling. Two axes:

  • Route/definition growth. More parameters per route increases route-cache size and the surface for silent typos. Keep parameter sets narrow and typed where possible.
  • Read patterns. Reading parameters is cheap per request; the risk is discoverability and duplication — multiple squads re-deriving the same context under different keys. Cap adoption to read-mostly, single-route access patterns and route all new keys through the registry.

Failure modes.

Mode Impact Mitigation
Key collisions / typos across squads Silent wrong behavior, hard to trace Namespaced key registry; documented types
Values invisible to logs/analytics Slow incident diagnosis Log resolved parameters at the read site, not the definition
Route-cache mismatch (prod cached, CI cleared) Divergent behavior between envs Include route-cache rebuild in the deploy checklist; verify parity
Drift into a de-facto flag system Reinvents a flag platform badly Explicit "context, not flags" rule; buy/keep the real flag system
Maintainer abandonment No security patches Monitor for >12 months dormancy; vendor/fork if load-bearing
Upgrade pinning at next Laravel major Blocked framework upgrade v1.5.3 already addresses this — keep the constraint wide

Ramp-up. Hours for a mid-level Laravel engineer — the API is a handful of methods. The ramp-up cost for the organization is the convention: teams need the key registry and the "don't use this as your feature-flag system" rule stated up front, or each will independently rediscover the anti-pattern. Ship those two documents alongside the pilot.

How to measure leverage. Track (a) count of "make it configurable" asks closed without a schema or endpoint change, (b) lead time on those asks vs. baseline, and (c) number of distinct parameter keys vs. registry entries — the gap is your governance debt. Ship the pilot, baseline those three, and re-decide adoption breadth at the next dependency-refresh window.

Assessment status. New assessment, no prior baseline. The v1.5.3 release introduces no risk and does not change the recommendation. Proceed with a scoped spike and a one-page key registry.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource