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 Dto Bundle Laravel Package

nelexa/request-dto-bundle

Symfony bundle for mapping HTTP request data into typed DTOs with attribute-based configuration, validation, and automatic hydration. Reduce controller boilerplate by turning query, body, and route parameters into clean, testable request objects, with support for nested DTOs and Symfony Validator.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor for a Laravel codebase. Despite the framing, nelexa/request-dto-bundle is a Symfony Bundle, not a Laravel package. It integrates through Symfony-specific extension points: the Bundle class contract, ControllerEvent / kernel event listeners, and the ArgumentResolver service tag. Laravel has no bundle system, no Symfony kernel events, and no argument-resolver chain; its equivalents are route model binding, FormRequest, container-resolved controller method injection, and middleware. There is no path to composer require this into a Laravel app and have it work — every integration seam would need an adapter.

Integration feasibility — low without a rewrite. The reusable core (DTO construction from request data, type coercion, validation hooks) is conceptually sound and is exactly the pattern Laravel's FormRequest and spatie/laravel-data already solve. What is not reusable is the wiring, which is the majority of the package's value. A TPM should treat this as a reference implementation rather than a dependency.

Technical risk — high and concentrated.

  • Last release 2021-12-08 (~4 years stale), 9 stars, 0 dependents. Zero production signal.
  • Bus factor of one, no visible security disclosure process, no CVE response path.
  • PHP/Symfony version constraints will be pinned to a 2021-era matrix; PHP 8.2/8.3 and modern Symfony majors are likely unsupported or untested.
  • Low adoption score (0.135) and low opportunity score (25.66) confirm this is not a rising or validated project.

Key questions for the team

  1. Is the target application actually Symfony, or Laravel? This determines whether the package is even in scope.
  2. What problem are we solving — request validation, DTO hydration, controller signature hygiene, or API contract enforcement? Each has a native Laravel answer.
  3. Are we willing to fork and own the maintenance of a single-maintainer package?
  4. What is our policy on unmaintained dependencies in request-handling paths (i.e., the input boundary, where security exposure is highest)?
  5. If Symfony is the real target, does symfony/serializer + symfony/validator + a custom resolver cover the same ground with first-party support?

Integration Approach

Stack fit. If the stack is Laravel: reject as a dependency and adopt spatie/laravel-data or a house FormRequest convention instead. If the stack is Symfony 5.x on PHP ≤8.0: it is installable, but only worth it if we accept owning a fork.

Migration path (Laravel). Do not port the bundle. Extract the idea — typed request objects constructed from the HTTP layer — and implement it natively:

  • Phase 1: define a RequestDto base contract (from-array hydration, validation, typed accessors) inside our own namespace.
  • Phase 2: bind it in the container and resolve it in controllers via method injection or a FormRequest-style subclass.
  • Phase 3: migrate endpoints incrementally behind that abstraction, so the underlying library choice stays reversible.

Migration path (Symfony). Fork the bundle, pin to our PHP/Symfony matrix, add a test suite and CI, and vendor it under an internal namespace. Wrap it behind our own resolver interface so it can be replaced by first-party Symfony components later.

Compatibility. Verify PHP constraint, Symfony minor-version bounds, PHPUnit/PHPStan compatibility, and whether it declares support for attributes vs. annotations. Expect conflicts with modern framework versions. Run a composer why-not against the current lockfile before committing to any spike.

Sequencing. (1) One-day spike to confirm the Symfony/Laravel question and audit the source for the actual resolver logic. (2) Decision gate: native alternative vs. fork-and-own. (3) If fork: security review, CI, ownership assignment before first production use. (4) Roll out to one internal, non-critical endpoint. (5) Expand only after a full upgrade cycle proves the fork survives.

Operational Impact

Maintenance. This is the dominant cost. An unmaintained package on the request boundary means we inherit every future PHP and framework upgrade. Budget a standing fraction of an engineer's time for a fork, or accept that it will be ripped out within two framework majors. Neither is free; the TPM should price both and pick explicitly.

Support. MIT with a single maintainer and no dependents means no vendor, no SLA, no community backchannel. Escalation is "read the source." For anything touching input parsing, that is an uncomfortable posture.

Scaling. Runtime cost of DTO hydration is negligible; this is not a throughput concern. The real scaling risk is organizational: every new engineer must learn an idiosyncratic, undocumented, unmaintained pattern that diverges from framework idioms. Onboarding cost compounds with headcount, and it makes hiring and code review harder.

Failure modes to plan for.

  • Silent hydration failures: a missing or mistyped field coerces to null and propagates instead of failing loudly.
  • Validation bypass: if the DTO layer and framework validation are both present, one quietly wins.
  • Type-coercion bugs on boundary inputs (numeric strings, empty strings, nested arrays).
  • Hard breakage on framework upgrade with no upstream fix — a forced, unscheduled migration.
  • Unpatched vulnerability with no disclosure channel.

Ramp-up. The concept takes an hour to grasp; the implementation takes a day to read because documentation is thin. Assume each engineer needs a source walkthrough plus an internal style guide. Factor that into the estimate — it's a recurring cost, not a one-time one.

Recommendation. For a Laravel target, do not adopt; use native equivalents and treat this repository as a design reference only. For a Symfony target, adopt only as an owned fork with an assigned maintainer and a documented exit path. In both cases, the decision should be made on the abstraction we want, not on a 9-star package last released in 2021.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console