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

Automapper Bundle Laravel Package

jolicode/automapper-bundle

Symfony bundle integrating JoliCode Automapper for fast, type-safe object-to-object mapping. Configure mappings, inject the mapper service, and convert entities, DTOs, and other objects with minimal boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. jolicode/automapper-bundle remains a thin Symfony bundle that wires the framework-agnostic jolicode/automapper library into Symfony's DI container. Its value proposition—convention-based object-to-object mapping that removes hand-written DTO hydration and view-model transformation—is relevant to any PHP application with a layered domain or rich API surface. But the bundle's substance is Symfony-specific: Bundle class, services.yaml, compiler passes, Config component. Laravel's Illuminate\Container, service providers, and Eloquent lifecycle do not map onto bundle mechanics. Release 8.1.0 changes nothing here—it is a dependency-compatibility bump, not an architectural change.

Integration feasibility. Still low for Laravel. 8.1.0 adds no Laravel service provider, no Laravel-facing configuration, and no framework-agnostic bootstrap path. The core library remains the only realistic adoption vector in a Laravel codebase, and it must be wired manually. The bundle itself continues to add zero delivery value outside Symfony.

Technical risk. Materially revised from the prior assessment, and the revision cuts in the package's favour—but it does not change the Laravel conclusion.

  • The "archived / superseded" finding no longer holds as stated. 8.1.0 is a published release referencing an open PR (GH#12), which is inconsistent with an archived repository. The prior assessment's strongest disqualifier was inferred from stale metadata rather than observed behaviour. Treat the archival conclusion as unverified and re-check repository state directly before repeating it.
  • Upstream tracking has resumed, narrowly. The single change—support for AutoMapper >=8.2—means the bundle now acknowledges core library version movement. That reduces the "version skew between bundle and core" failure mode that previously carried real weight.
  • Residual risk is now fit-based, not health-based. For Laravel the blocker was always architectural mismatch, not abandonment. Even a well-maintained Symfony bundle is the wrong dependency here.
  • New, smaller risk introduced by the release itself. The constraint is expressed as a floor (>=8.2) with no visible ceiling. An unbounded upper constraint means a future AutoMapper 9.x major could be installed alongside a bundle that has never been tested against it, producing silent mis-mapping rather than a resolver error.
  • Evidence base is thin. One PR merged after a long quiet period is a maintenance signal, not a maintenance track record. Single-maintainer concentration and release cadence remain open questions.

Key questions.

  1. What is the actual repository state and release cadence as of 8.1.0—was the project unarchived, or was the archival inference simply wrong? What is the commit history over the last 12 months?
  2. Does the core jolicode/automapper package (8.2+) now ship first-party framework integration, and does the bundle still carry unique wiring logic or is it a compatibility shim?
  3. Is the AutoMapper dependency bounded above anywhere (conflict rule, CI matrix)? Who owns the decision to widen the constraint on the next core major?
  4. What remains the business driver for a mapping layer? If it is API contract hygiene, JsonResource or spatie/laravel-data cover it without importing Symfony DI concepts.
  5. What is the measured reflection/attribute-parsing overhead per request at our expected throughput, and is metadata caching on by default?

Integration Approach

Stack fit. Unchanged: poor for Laravel, good for Symfony. Laravel teams should continue to treat the bundle as out of scope and evaluate the core library or a Laravel-native alternative directly. The 8.1.0 release does not alter stack fit—it only removes the "abandoned dependency" objection for teams already on Symfony.

Migration path.

  • Greenfield Laravel: Do not adopt the bundle. Prototype the core jolicode/automapper library behind a custom ServiceProvider, or select a maintained alternative (spatie/laravel-data, explicit mapper classes).
  • Existing Symfony: The exit is no longer urgent. Pin to 8.1.0, verify the AutoMapper floor is satisfied in composer.lock, and add a CI job that fails on unplanned core-major upgrades. Re-evaluate the "migrate to core integration" recommendation on the next core major, not immediately.
  • Fork scenario: Deprioritise. Fork ownership was justified by abandonment; that justification has weakened. Re-baseline only if the next core major passes without a corresponding bundle release.

Compatibility. 8.1.0 explicitly requires AutoMapper >=8.2. No PHP or Symfony constraint changes are documented in the release notes, so the March 2024 era constraints on PHP 8.x / Symfony 6.x should be assumed to persist until verified against composer.json. No Laravel compatibility exists in any release, including this one.

Sequencing.

  1. Verify repository and maintainer status directly—correct the record on archival before any planning decision rests on it.
  2. Confirm the AutoMapper >=8.2 floor is compatible with our locked core version; check for an upper bound.
  3. Validate the need for a dedicated mapping layer (DTO boundaries, API versioning, domain isolation).
  4. Spike (1–2 days) with the core library inside a Laravel service provider; exercise real Eloquent → DTO paths.
  5. Establish mapping conventions (profiles, attributes, transformers) and contract-test them before broad rollout.
  6. Gate adoption behind measured performance and a documented constraint-widening policy.

Operational Impact

Maintenance. Improved but not resolved. There is now evidence of active upstream maintenance, so self-maintenance is no longer the default assumption. The project still appears to be a small-team or single-maintainer effort with intermittent release cadence; a multi-month gap followed by one dependency-bump PR is a fragile support signal. Plan for the possibility of another quiet period, but do not budget full fork ownership as the base case.

Support. No commercial support channel identified; GitHub issues remain the route. Response latency is unproven given the release gap. Ramp-up cost is unchanged: moderate for Symfony developers (AutoMapper conventions plus bundle wiring), high for Laravel-only teams who must first absorb Symfony DI and compiler-pass semantics to reason about glue code they will ultimately discard.

Scaling. The library is stateless; horizontal scaling is unaffected. Mapping remains CPU-bound on reflection and attribute parsing. The 8.1.0 bump to core >=8.2 is a reason to re-run benchmarks rather than reuse prior numbers—verify metadata caching behaviour on the newer core before committing to high-volume paths.

Failure modes.

  • Unbounded core dependency. A future AutoMapper major may satisfy >=8.2 while breaking bundle assumptions. Mitigate with an explicit conflict rule in our own composer.json and a CI matrix job.
  • Silent mis-mapping when source/target conventions drift—fields unset or defaulted with no error. Mitigate with explicit mapping tests and strict-mode configuration.
  • Maintenance regression to a dormant state after this release. Mitigate with a quarterly dependency-health check, not a permanent fork.
  • Container/compiler-pass failures on framework or PHP upgrades.
  • Attribute-based configuration breaking under autoloader or opcache changes.

Ramp-up. Budget a 1–2 day spike plus documented conventions before committing. For Laravel teams the recommendation stands unchanged and for the same reason as before: the bundle adds conceptual overhead with no delivery benefit. The 8.1.0 release is a genuine improvement to the project's health signal and should be recorded as such, but it is a compatibility bump to a Symfony integration layer and does not create a Laravel adoption path.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log