mops1k/request-object-resolver-bundle
A Symfony bundle that resolves typed request objects from incoming HTTP requests and injects them into controller arguments. It keeps controllers clean by moving request parsing, mapping, and validation into dedicated request classes for simpler, safer endpoints.
Serializer + a custom ArgumentResolver. That keeps this a genuine build-vs-buy call rather than a foregone "buy." The v2.0.0 "add your own resolvers to the resolve chain" feature trims that estimate slightly — you can extend the package's resolver chain instead of forking it — but it does not change the underlying risk profile: 9 stars, 0 dependents, and a single release line that started in Dec 2023.spatie/laravel-data, or custom route-binding resolvers. This package should be removed from the Laravel comparison set entirely.Consider it only when all of the following hold:
Serializer is already the serialization standard in the codebase.#[MapRequestPayload] / #[MapQueryString] does not cover — because the package's own pitch ("a better alternative for new Symfony request DTO resolvers") is a claim against native functionality that has since shipped and is maintained by the core team.Look elsewhere when:
#[MapRequestPayload]/#[MapQueryString] are core-maintained, documented, and upgrade-safe; the default should be to prefer them and require this package to justify itself against them. The v2.0.0 resolver chain is an argument for the package only on endpoints that actually need custom resolution — not as a general reason to switch.symfony/validator integration or a data-mapping library with active maintenance instead.To executives: This is not a business-level decision and I would not bring it to you as one. It is a small, single-maintainer Symfony utility for turning HTTP requests into typed objects. The v2.0.0 release adds extensibility (custom resolvers in a chain) and some attribute-handling fixes; it does not change the strategic picture. The point worth your attention remains narrow: it surfaced in a "Laravel/PHP package" evaluation, and it is not a Laravel package at all. That is a sourcing-hygiene issue in how we scan and qualify dependencies — worth a process fix, not a budget line.
To engineering: It does one job — deserialize request parameters into DTOs via an argument resolver — and does it in a framework we may not even be using. v2.0.0 adds a pluggable resolver chain and attribute workarounds, which is a real improvement in flexibility and removes part of the "fork it to extend it" argument. It does not move the risk markers: 9 stars, 0 dependents, effectively one maintainer, and now a major version bump published without migration notes. Recommendation: do not adopt by default. If we're on Symfony, prototype against core #[MapRequestPayload] / #[MapQueryString] first — the package still positions itself as an alternative to exactly that, and native wins on maintenance and upgrade safety. If native mapping genuinely falls short for a specific endpoint, prefer either the in-house resolver (1–2 days) or pin this package explicitly as vendored code with a named owner and a regression test suite, since v2.0.0's resolver chain now makes an extended fork harder to reason about across upgrades. This is the layer where a silent behavioral change hurts most. If we're on Laravel, close the ticket; the correct comparison set is FormRequests and spatie/laravel-data.
How can I help you explore Laravel packages today?