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.
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:
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.Validator/Rule objects. Multi-week effort for a documentation artifact of moderate value.Technical risk.
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.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.Key questions.
type: symfony-bundle change alter anything for non-Symfony consumers, or is it purely Flex metadata? (Expected: purely metadata, inert for Laravel.)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).
composer type change and prod dependency bumps are inert for our install profile; diff the lockfile impacts in an isolated branch.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.
composer update pulls major transitive bumps via this package's patch releases, producing unrelated breakage.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.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.
How can I help you explore Laravel packages today?