yoanm/jsonrpc-params-symfony-constraint-doc-sdk
A PHP SDK that generates documentation for JSON-RPC parameter definitions from Symfony validation constraints, helping keep API reference docs aligned with validation rules and easier for consumers to understand.
Architecture fit
The package is a narrow, build-time documentation utility: it reads Symfony Validator Constraint metadata attached to JSON-RPC parameter classes and emits JSON-RPC documentation artifacts. It sits at the intersection of two ecosystems that are largely orthogonal to Laravel:
illuminate/validation component and does not use symfony/validator as its validation engine. Adopting this package means introducing a second, parallel validation vocabulary (#[Assert\NotBlank], #[Assert\Type], etc.) purely for documentation purposes, on DTOs that Laravel would not otherwise validate through Symfony.yoanm/php-jsonrpc-* family — this SDK is one node in a chain (jsonrpc-server, jsonrpc-doc, the params/constraint SDKs). Its value is only realized if the JSON-RPC server layer and doc layer are also from that family. In a Laravel app the request/response layer is typically HTTP controllers, FormRequests, or a bespoke JSON-RPC middleware — none of which speak this family's contracts natively.Net: architecturally coherent within its own ecosystem, but a foreign body in a conventional Laravel application. Fit is effectively conditional on already running a yoanm-based JSON-RPC server, which is rare.
Integration feasibility
require-dev and a CI job — a meaningfully smaller blast radius than a runtime dependency.symfony/validator, and depending on its annotation strategy possibly doctrine/annotations (deprecated) or PHP 8 attribute readers. That determines feasibility more than this repo's own code.Technical risk
| Risk | Severity | Note |
|---|---|---|
| Ecosystem lock-in | High | Only useful with the yoanm JSON-RPC stack; near-zero value standalone |
| Adoption signal | High | 0 stars, 0 dependents — essentially unexercised in the wild |
| Bus factor | Medium–High | Single-maintainer, niche project |
| Annotation vs. attribute strategy | Medium | If it requires doctrine/annotations, you inherit a deprecated dependency |
| Doc drift | Medium | Generated docs are only as truthful as the constraint metadata; nothing enforces parity with actual Laravel validation rules |
| Version coupling | Medium | Tightly tracks Symfony Validator and jsonrpc-doc major versions; a Laravel upgrade path may strand it |
| Runtime risk | Low | Build-time tool; can be isolated to CI |
The September 2025 release date suggests the maintainer is still active, which partially mitigates abandonment risk — but activity is not adoption.
Key questions
doctrine/annotations? (Decisive for PHP 8.2+ / Laravel 10–12.)composer.json constraints on symfony/validator, php, and the sibling yoanm packages? Does it conflict with Laravel's pinned Symfony component versions?JsonRpcParams base types/marker interfaces?yoanm/php-jsonrpc-doc?Stack fit
Poor-to-conditional. Recommended posture: evaluate only, do not adopt unless a yoanm JSON-RPC server is already in place. For a standard Laravel API, Scribe, Scramble, or a hand-rolled OpenAPI generator will produce comparable documentation from Laravel-native validation rules with far less duplication and no second validation vocabulary.
Migration path
There is no migration path from Laravel conventions — this is a greenfield modeling decision. If adopted, the realistic path is:
symfony/validator at the boundary.Step 4 is the crux: to avoid drift you end up running two validators, which is a meaningful architectural tax for a documentation benefit.
Compatibility
Verify against the target Laravel version's Symfony component pins before any spike. Laravel's symfony/* transitive versions are constrained by the framework itself; a package demanding a different symfony/validator major is a hard blocker, not a nuisance. Also confirm PHP version floor against the app's runtime.
Sequencing
doctrine/annotations.require-dev, isolate doc generation in a dedicated CI job, gate on the artifact being committed/diffed so drift is visible in review.symfony/validator until there is an independent reason to standardize on it.Because the package is build-time and require-dev-scoped, sequencing is reversible at every step — which is the strongest argument for a cheap spike and the weakest argument for a funded commitment.
Maintenance
Low ongoing effort if isolated to CI, but the dependency surface is the concern: symfony/validator and the yoanm doc chain will each move on their own cadence, and this package's release rhythm is driven by one person. Budget for periodic version-conflict triage at each Laravel major upgrade. The generated documentation artifacts themselves become a maintained asset — they must be regenerated and reviewed, or they silently rot.
Support
Effectively community-of-one. No vendor, no SLA, no meaningful issue-tracker history given 0 stars and 0 dependents. Internal ownership must be assigned before adoption; treat the code as forkable-and-ownable rather than supported. The MIT license makes forking viable, but the small codebase is only cheap to fork if the team already understands the yoanm doc model.
Scaling
Not a scaling concern in the runtime sense — it executes at build time and does not touch request paths, throughput, or latency. It scales (or fails to) with the number of documented JSON-RPC methods: generation time grows linearly and is negligible at typical method counts. The real "scale" limit is team comprehension — the number of engineers who can correctly author Symfony constraints inside a Laravel codebase will be small.
Failure modes
doctrine/annotations is in the graph, PHP/runtime upgrades will eventually force a migration the upstream may not ship.Ramp-up
Moderate for a PHP team, steep for a Laravel-only team. Engineers must learn the Symfony Validator constraint model and the yoanm doc pipeline — two things no one on a typical Laravel squad has prior exposure to. Estimate a few days of focused learning for one engineer to become the internal authority, plus ongoing context-holding cost for a single-purpose tool.
Recommendation: Treat as a low-priority, time-boxed spike scoped to require-dev. Opportunity score (37.55) and adoption signals (0 stars, 0 dependents) do not justify displacing Laravel-native documentation tooling. Revisit only if the organization standardizes on the yoanm JSON-RPC server stack for reasons independent of documentation.
How can I help you explore Laravel packages today?