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

Symfony Jsonrpc Params Sf Constraints Doc Laravel Package

yoanm/symfony-jsonrpc-params-sf-constraints-doc

Symfony JSON-RPC params with Symfony constraint documentation: declare validation rules on JSON-RPC parameters and generate clear, constraint-aware docs so your API contract stays consistent, discoverable, and easy to maintain for Symfony applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict: Do not adopt for a Laravel codebase. The release itself is low-risk, but it confirms a framework mismatch that makes this package a poor fit regardless of version.

Architecture fit. yoanm/symfony-jsonrpc-params-sf-constraints-doc is a Symfony bundle, not a Laravel package. Its core value proposition—deriving API documentation from the Symfony Validator constraint metadata attached to request/params classes—depends on Symfony's Constraint object model, metadata readers, and bundle service wiring. Laravel's validation layer is rule-string based ('required|string|max:255') with no equivalent introspectable constraint graph. There is no clean architectural seam where this package plugs in; you would be adopting Symfony's validation model inside a Laravel app to justify the doc generator.

Integration feasibility. Low without significant custom work. Three viable-but-costly paths:

  1. Install symfony/validator alongside Laravel and define parallel constraint-annotated DTOs that duplicate your FormRequest rules — two sources of truth, which defeats the package's entire premise.
  2. Use only the underlying constraint-extraction logic (if separable from the bundle) and build a Laravel→constraint adapter. Requires verifying whether the extraction core is published as a standalone dependency or only exists inside this bundle.
  3. Fork the extraction layer and reimplement it against Laravel's Validator/Rule objects. Multi-week effort for a documentation artifact of moderate value.

Technical risk.

  • Framework/ecosystem drift. The v2.0.2 change of composer type from a generic library to symfony-bundle is the maintainer explicitly signaling Symfony-only distribution and Symfony Flex auto-discovery intent. This is a directional decision, not a one-off. Future releases will assume Symfony bundle conventions and may introduce hard bundle-only coupling (compiler passes, service tags, configuration trees) with no Laravel path.
  • Patch release containing major dependency bumps. The prod-majors Dependabot group upgraded two production dependencies across major versions inside a patch version (2.0.1 → 2.0.2). SemVer-wise this is legal only if the affected code paths are not exercised by the package's own public surface—but it means transitive major-version churn ships silently to consumers. Our ability to reason about reproducibility under composer.lock regeneration is weakened. Pin exact versions if we proceed at all.
  • Maintainer concentration. Single-maintainer project. Recent releases appear Dependabot-driven rather than feature- or fix-driven, which historically correlates with lower responsiveness on issue triage and higher vulnerability-patch latency.
  • No security-relevant changes in this release. No deprecations, no removals, no API changes.

Key questions.

  • Is the constraint-extraction core (the part that actually generates the param documentation) available as a framework-agnostic package, or is it only consumable via this Symfony bundle?
  • Does the type: symfony-bundle change alter anything for non-Symfony consumers, or is it purely Flex metadata? (Expected: purely metadata, inert for Laravel.)
  • What exactly were the two major dependency bumps, and do any of them touch the constraint-normalization or serialization path?
  • Is there an existing OpenAPI/Scribe/Scramble-based approach in our stack that already covers this need? (Almost certainly yes, and it wins on fit.)
  • What is the maintainer's stated support policy and supported PHP/Symfony version matrix?

Integration Approach

Stack fit. Poor. Our stack is Laravel + Eloquent + FormRequests/Illuminate\Validation. This package's assumptions—Symfony bundle kernel, DI container service tags, Validator constraint objects—have no counterpart. A composer require is technically possible but yields an unused bundle; the useful code is not reachable from Laravel's validation flow.

Migration path. If we were already on Symfony (or a hybrid Symfony/Laravel monolith where the JSON-RPC surface is a Symfony service), the path is straightforward: install via Flex, register the bundle, annotate params DTOs with constraints, and expose the doc-generation command. For Laravel-only, there is no migration path—there is a rewrite path. Recommend treating this as a pattern reference, not a dependency: adopt the idea of generating request documentation from validation metadata, and implement it against Laravel's validator (Scribe, Scramble, or a small custom rule-introspection command) instead.

Compatibility. Package targets PHP/Symfony versions we do not run. Confirm the composer.json require block against our PHP version and Laravel's bundled Symfony components—note that Laravel ships a subset of Symfony components (HttpFoundation, Console, Process, etc.) but does not ship symfony/validator or symfony/dependency-injection in a form that supports bundle registration. Adding them risks version conflicts with Laravel's pinned Symfony component versions.

Sequencing (if a spike is approved despite the above).

  1. Verify the composer type change and prod dependency bumps are inert for our install profile; diff the lockfile impacts in an isolated branch.
  2. Confirm whether a standalone extraction package exists; if yes, evaluate that instead of the bundle.
  3. Timebox a 3–5 day spike on the extraction core against one representative FormRequest set.
  4. Gate on: does the spike produce correct docs for ≥90% of our param rules without duplicated constraint definitions? If no, stop.
  5. In parallel, cost out Scribe/Scramble as the baseline alternative—expect it to win on integration effort by an order of magnitude.

Operational Impact

Maintenance. Near-zero cost only because we would not run it. If adopted, expect ongoing friction: every Laravel validation-rule change requires a second edit in the constraint DTO layer, and every Symfony-side major bump (which arrives inside patch releases here) requires review. We would own an adapter indefinitely.

Support. Single-maintainer upstream with a low-traffic issue tracker and a release stream that is largely automated dependency bumps. Do not expect timely answers on non-Symfony integration questions; there is no reason to believe Laravel compatibility is in scope or on the roadmap.

Scaling. Documentation generation for a large param surface is a batch/CI concern, not a runtime one, so scaling is not a concern. The scaling problem is organizational: the number of hand-maintained duplicate definitions grows with the API surface, and drift becomes the dominant failure mode.

Failure modes.

  • Silent documentation drift — the most likely and most damaging mode. Docs generated from a parallel constraint layer diverge from actual validation behavior; consumers trust stale docs.
  • Lockfile churn on unrelated updates — a routine composer update pulls major transitive bumps via this package's patch releases, producing unrelated breakage.
  • Symfony component version conflict — installing symfony/validator/dependency-injection alongside Laravel raises the probability of a conflict with Laravel's pinned Symfony subset, surfacing as a confusing composer update failure.
  • Abandonment — single-maintainer projects fail silently; docs pipelines rot without alerting.

Ramp-up. Low for reading the code (it is small, well-named, single-purpose). Moderate for anyone asked to build the Laravel adapter, because it requires fluency in both Symfony Validator's constraint metadata model and Laravel's rule-string parsing—an unusual combination on our team.

Recommendation. No action for the Laravel platform. Record this release as confirmation of Symfony-only direction and close the evaluation. Revisit only if we introduce a Symfony service boundary that owns an exposed JSON-RPC API. If the underlying "docs from validation constraints" pattern is attractive, pursue it natively via Scribe or Scramble rather than by importing this dependency.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core