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

Technical Evaluation

Architecture fit. The package is a Symfony bundle (metglobal/dto-bundle), not a Laravel package — and that mismatch is the headline finding. Laravel has no bundle registration mechanism: the Bundle subclass, the DI Extension, compiler passes, and the services.yaml conventions that carry this library's actual wiring have no runtime in a Laravel application. What survives portage is only the framework-agnostic core — most likely an abstract DTO base class with fromArray/toArray, type coercion, and mapping metadata. That is a small, replaceable slice of functionality, and it is a fraction of what the package nominally offers.

Integration feasibility: low. The repository is archived, sits at 2 stars with 0 dependents, and is scored 0.05 — there is no release cadence, no issue triage, and no security advisory path. Dependency constraints almost certainly target PHP 7.x and Symfony 3.4/4.x. Against Laravel 10/11/12 on PHP 8.1+, expect composer require to either fail outright or force a resolution that downgrades symfony/* packages shared with the framework. The MIT license is permissive and unproblematic; the abandonment is the problem, not the legal terms.

Technical risk. Assessed as high on every axis:

Risk Severity Rationale
Dependency conflict High Stale PHP/Symfony constraints vs. modern Laravel
Abandonment High Archived; no CVE response, no PHP minor support
Mapping-layer semantics Medium Coercion/serialization edge cases are where DTO bugs hide
Annotation dependency Medium If mapping is annotation-based, doctrine/annotations 2.x removal breaks it
Ecosystem vacuum Medium Zero dependents, 2 stars = no StackOverflow corpus, no battle-testing
Vendor credibility Low Metglobal is a legitimate travel-tech firm; the artifact is simply unmaintained

Key questions for the requesting team.

  1. What capability do we actually need — typed hydration, validation, nested mapping, or serialization shaping? Each has a maintained Laravel-native answer.
  2. Is there a contractual or integration reason (an existing Metglobal service contract) that mandates this specific library, or is it incidental?
  3. Who owns the fork if we proceed, and is that name on the on-call rota?
  4. Which PHP and Laravel versions must we support over the next 18 months?
  5. What is the exit ramp if the fork stalls?

The honest default recommendation is do not adopt. spatie/laravel-data covers the same ground with active maintenance; PHP 8.1+ readonly classes plus hand-written fromArray cover the minimal case with zero dependency surface.

Integration Approach

Stack fit. There is no clean fit. The table below frames the gap for the sponsor:

Need This package Laravel-native equivalent
DTO base + hydration Framework-agnostic core only spatie/laravel-data, or readonly classes
Container wiring Symfony DI extension — inert in Laravel Native service container
Validation Unclear; likely Symfony Validator Laravel Validator / FormRequests
Serialization Symfony Serializer Laravel resources, JsonResource
Lifecycle Archived Maintained, versioned, tested

Migration path. If a business constraint forces adoption, do not install the bundle. Fork the repository into an internal namespace, strip the Symfony bundle/DI layer, retain only the core DTO classes, add PHP 8.2/8.3 CI, and publish as an internal Composer package. That converts an unmaintained third-party dependency into a small, owned, auditable component — the only configuration in which the risk is survivable.

Compatibility. Pin the fork's constraints explicitly rather than inheriting upstream's. Reconcile against the current composer.lock before any code is written; if resolution requires downgrading shared symfony/* or illuminate/* packages, stop — that is a framework-wide regression, not a package-level one. Verify whether mapping uses Doctrine annotations; if so, budget for an attributes migration, since the annotation reader is gone in current releases.

Sequencing.

  1. Spike (1–2 days): dependency audit and a throwaway hydration of one real payload. This usually settles the question.
  2. Decision gate: adopt-fork vs. spatie/laravel-data vs. plain readonly classes. Default to the second or third.
  3. Fork and harden (if proceeding): strip bundle wiring, add CI matrix, publish internally.
  4. Bounded pilot: one low-blast-radius boundary only — an inbound webhook or third-party API adapter — never a domain core.
  5. Exit criteria defined up front: adoption expands only if the pilot survives one Laravel upgrade cycle without manual patching.

Operational Impact

Maintenance. A fork means the team owns the code outright: PHP minor upgrades, security patches, and bug fixes all become internal work items with no upstream to defer to. SBOM and SCA tooling will flag the package as abandoned, generating recurring noise that has to be waived explicitly and re-justified at each audit. That waiver becomes a permanent piece of governance overhead disproportionate to what the library does.

Support. No upstream maintainer, no issue tracker activity, no community. A 2-star, 0-dependent package has essentially no public knowledge base — every question is answered by reading the source. Onboarding a new engineer means a code-reading exercise with no documentation to anchor it.

Scaling. Runtime performance is not the concern; DTO mapping is CPU-light and will not be the bottleneck at any plausible volume. The scaling risk is organizational: each PHP or Laravel upgrade becomes a bespoke internal migration rather than a composer update, and that cost compounds with every service that adopts the fork.

Failure modes. Watch for silent type coercion on nullable and nested fields (the classic DTO bug class, and the hardest to catch in review); annotation-reader removal breaking mapping wholesale on a dependency bump; serializer output drifting from what downstream consumers expect; and Composer lock churn where the fork's constraints pin the application's shared dependencies. The most damaging failure is the quiet one — a Laravel upgrade blocked for a quarter because one internal package cannot move.

Ramp-up. Low for the core classes (a day to read), high for the surrounding judgment — engineers must know which parts of the original bundle are inert, which are load-bearing, and why the package exists at all. That context lives only in whoever performed the fork, which is a single-point-of-failure pattern.

Bottom line. The package's score and archive status reflect reality. The cost of adopting and owning it exceeds the cost of writing the equivalent in readonly classes by a wide margin, and spatie/laravel-data removes the question entirely. Recommend rejecting adoption and recording the decision so it is not re-litigated.

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