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

Request Resolver Bundle Laravel Package

gchernikov/request-resolver-bundle

gchernikov/request-resolver-bundle adds a clean request-resolution layer to PHP apps, mapping incoming HTTP requests to the right handlers through configurable resolvers. It decouples routing logic from controllers, keeping request handling organized, testable, and easy to maintain.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • API contract architecture — where validation and mapping live. This bundle pushes request parsing out of controllers and into typed request DTOs resolved as controller arguments. That's a real architectural decision: validation at the boundary (DTO + Symfony Validator) vs. validation scattered across controllers, form types, or service layers. Adopting the pattern forces a consistent answer, which is the durable value here.
  • Controller thinness / testability. Controllers become function update(UpdateUserRequest $request) — typed, self-documenting, and unit-testable without booting HTTP. Decide whether that ergonomics gain is worth an extra abstraction layer in your stack.
  • Standardized error semantics. DTO-based resolution naturally produces uniform 422/400 responses for malformed or invalid payloads. If you're consolidating error formats across services (RFC 7807-style), this is a lever.
  • Build vs. buy vs. borrow. The honest PM framing: this is a borrow candidate, not a buy. With 1 star, 0 dependents, and a single maintainer, it's a reference implementation of a pattern — useful for a spike, risky as a production dependency. The decision it should inform is "do we hand-roll DTO resolution, adopt a mature framework feature, or vendor this code?"
  • Roadmap / migration sequencing. If you're on Symfony < 6.3, this pattern fills a real gap. If you're on 6.3+, native #[MapRequestPayload] and #[MapQueryString] already cover the primary use cases — making this a transitional decision with a known retirement date.
  • Framework alignment. Note the scope correction: despite the "Laravel/PHP" framing, this is a Symfony bundle, not a Laravel package. It has no bearing on a Laravel roadmap beyond pattern inspiration (Laravel's analogue is FormRequests or spatie/laravel-data).

When to Consider This Package

  • You are on Symfony 5.4/6.0–6.2 with PHP 8.x and want typed request DTOs without writing a custom ArgumentValueResolver and its test suite. Here the bundle saves a genuine day or two of plumbing.
  • You want to prototype the pattern — a one-week spike to see how DTO-based controllers feel before committing team-wide. Low cost, MIT license, easy to discard.
  • Your team is comfortable vendoring or forking under MIT and pinning a specific commit. Treat it as source code you're adopting, not a dependency you're consuming.
  • Tiny surface area, tiny blast radius: if it's used only in a handful of controllers in a non-critical service, the maintenance risk is bounded.

Look elsewhere when:

  • You're on Symfony 6.3+ — use #[MapRequestPayload] / #[MapQueryString] from the framework. Zero dependencies, first-party security patching, better docs. This is the default recommendation for most teams.
  • You're building a Laravel application — this bundle is inapplicable. Use FormRequests or a DTO package.
  • You need maintainer SLA, security response, or a support contract. One star and zero dependents means no community vetting and an effective bus factor of one. For anything customer-facing or regulated, that's a blocking risk.
  • You're adopting API Platform or a full API framework — overlapping concerns, avoid the layering conflict.
  • You need long-term stability guarantees. A single-maintainer package with no downstream users is a known churn risk on your dependency graph; the cost of removal later typically exceeds the cost of writing the resolver yourself now.

How to Pitch It (Stakeholders)

To executives: This is a low-cost, high-clarity architectural pattern — typed request objects instead of loose arrays in controllers — packaged by a single developer with essentially no adoption (1 star, 0 dependents). The idea is sound and is now first-party in modern Symfony; the package is not a strategic dependency. Recommendation: invest hours, not a procurement cycle — prototype or vendor the pattern, do not add it to the critical path of the dependency graph.

To engineering: It solves a real ergonomics problem — controller argument resolution of validated DTOs — but the same outcome is available natively on Symfony 6.3+ via #[MapRequestPayload]. If you're pre-6.3, spend a sprint spike evaluating it; expect to fork it, pin it, and own the code. If you're on 6.3+, skip it and adopt the framework primitive, and use this repo as a worked example of the resolver contract. Either way, treat the deliverable as a decision on where validation lives, not a package install.

Bottom line for the roadmap: pattern yes, dependency no. Assign an owner, timebox to one spike, and record the retirement trigger (Symfony upgrade) up front.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log