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

Dto Bundle Laravel Package

metglobal/dto-bundle

A Symfony bundle for working with data transfer objects (DTOs), making it easier to convert request or array data into typed PHP objects instead of loose arrays. Helps keep controllers and services cleaner by centralizing data mapping and structure.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on the "typed payload" layer. This package is a reference implementation of a real need — turning untyped request/queue/webhook payloads into validated, typed objects before they reach domain logic. Reading it is useful for scoping what an in-house convention should cover (hydration, nested objects, validation boundaries). It is not a candidate dependency.
  • API contract hardening roadmap. If we are tightening request validation across services, this is an input to the decision: standardize on FormRequests plus explicit DTO classes, or adopt a maintained library. The existence of half a dozen abandoned packages in this space is itself the argument for one internal convention rather than per-team choices.
  • Dependency policy and vendor-risk precedent. Archived, 2 stars, 0 dependents, low adoption score — a textbook case for the "no unmaintained third-party code on the request path" rule. Useful as a documented example when we formalize the policy.
  • Consolidation/deprecation audit. If this or a fork is already in a codebase (e.g., inherited from a Symfony-era service), it flags a migration item: replace before the next framework upgrade, not during it.
  • Framework-strategy signaling. The package is Symfony-specific, so its presence in a proposal is a signal that the author is solving a Symfony problem in a Laravel context. That is a review checkpoint, not a technical choice.

When to Consider This Package

  • Effectively never as a dependency. It is archived, has almost no adoption, no dependents, and no maintenance path. That fails most reasonable dependency policies regardless of code quality.
  • Only as a read-only design reference, and only if we are designing our own DTO layer and want to see one prior approach to configuration-driven hydration and validation.
  • Not applicable to Laravel. It is a Symfony bundle; adopting it means fighting the framework, reimplementing service wiring, and owning a private fork of dead code.
  • Look elsewhere when the need is real. The need — typed, validated payloads — is legitimate. The maintained options are Laravel FormRequests with explicit DTO construction, spatie/laravel-data for attribute-driven DTOs with validation and casting, or CuyZ/Valinor / Symfony Serializer plus Validator if we need schema-driven mapping. On the Symfony side, the native Serializer plus Validator covers most of what this bundle was doing.
  • Revisit only if a fork gains active maintainers, real dependents, and framework-current releases. Current evidence gives no reason to expect that.

How to Pitch It (Stakeholders)

Recommendation: do not adopt. The underlying need is real — untyped request and event payloads are a recurring source of validation gaps and runtime errors — but this package is not the answer. It is a Symfony bundle, it is archived, and it has essentially no adoption, which means no security patches, no compatibility work, and all maintenance cost transferred to us.

What to do instead: standardize on one maintained approach (FormRequests plus DTOs, or spatie/laravel-data) and treat this package as a design reference only. The engineering cost of an internal convention is small and the result is framework-native and supportable.

For executives: the cost here is opportunity cost and risk, not license fee. The license is MIT, so the price is zero and the total cost is ownership. Adopting archived code on the request path creates an upgrade blocker and a security review item for a problem we can solve with maintained tooling in a sprint or two.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
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
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core