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

Symfony Request Entity Bundle Laravel Package

halloverden/symfony-request-entity-bundle

A Symfony bundle that maps incoming request data directly onto entity objects, simplifying form-free request handling and reducing boilerplate in controllers.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The package is a Symfony bundle, not a Laravel package. It plugs into the Symfony HttpKernel/HttpFoundation + DependencyInjection stack via config/bundles.php and a compiler pass that registers a request value resolver. A Laravel application has no bundle kernel, no Bundle base class, and no tagged-service auto-configuration layer.
  • Even inside Symfony, the capability it appears to provide — resolving a route/request parameter into a Doctrine entity and injecting it into a controller argument — is already native. Doctrine's EntityValueResolver plus the #[MapEntity] attribute (Symfony 6.2+) supersedes the old SensioFrameworkExtraBundle ParamConverter pattern this bundle is modeled on. The package is recreating platform functionality rather than filling a gap.
  • In Laravel the equivalent is route model binding (implicit {user} type-hint resolution and explicit Route::bind), which is core framework behavior and already covers the same use case with better ergonomics.

Integration feasibility

  • Effectively zero for a Laravel codebase. Only the low-level Symfony components Laravel actually vendors (HttpFoundation, Routing, Console) are shared; bundles and DependencyInjection are not part of Laravel's request lifecycle.
  • A "port" would mean extracting the resolution logic (route param → repository lookup → 404/exception behavior) into a Laravel service provider. That work is strictly negative value because it duplicates route model binding.
  • For a hypothetical Symfony service in our portfolio, feasibility is also low: adopting it means taking a dependency to get behavior we get free from the framework.

Technical risk

  • Abandonment risk: high. 0 stars, 0 dependents, no ecosystem footprint, and a composite score of 0.1. There is no evidence of a test suite, CI, changelog, or multi-maintainer governance. We would be the de facto maintainers.
  • Version-compatibility risk: high. Without releases targeting Symfony 6.x/7.x or PHP 8.2+, the bundle likely fails at container compile time on modern versions — a hard boot failure, not a soft degradation.
  • Security surface: moderate. Hydrating entities directly from request data is a mass-assignment-shaped problem. Any allowlist/denylist for which properties are writable needs to be explicit; an opaque bundle makes that hard to audit.
  • Supply-chain risk: low, purely by obscurity — there is no transitive dependency tree worth worrying about because there is almost no tree. MIT license is unproblematic.

Key questions

  1. Which Symfony and PHP versions are supported, and is there a composer.json constraint matrix or CI badge to prove it?
  2. Does it require Doctrine ORM specifically, or is the resolver storage-agnostic?
  3. Does it expose attribute-based configuration, or only YAML/annotation mapping (which would signal a pre-Symfony-6 design)?
  4. Is there any mechanism to restrict which fields are settable from request input?
  5. Under what conditions does it return 404 vs. throw — and is that configurable per-route?
  6. Who maintains it, and what is the release cadence over the last 12 months?

Integration Approach

Stack fit

  • Laravel: not a fit. The bundle cannot be installed meaningfully; Composer will pull it, but nothing registers it. Recommend rejecting on stack mismatch alone.
  • Symfony: a fit only for legacy 4.4/5.x applications that still rely on SensioFrameworkExtraBundle and have not moved to native value resolvers. Even there, the migration target is the framework, not this package.
  • The correct architectural pattern for our stack is: Laravel route model binding + Form Requests for validation + API Resources for serialization. That triad already delivers what this bundle offers, with first-party support.

Migration path

  • There is no migration onto this package that makes sense. The realistic path is the inverse: if any team is currently using it, migrate off to Laravel route model binding (or Symfony #[MapEntity]), which is a mechanical, low-risk refactor with identical semantics and a permanent maintenance saving.
  • Estimated effort to replace: hours per controller, not days, because the resolution contract is small.

Compatibility

  • Assume Symfony 4/5-era conventions until proven otherwise: annotation-based mapping, sensio/framework-extra-bundle as a transitive or peer dependency, PHP 7.4/8.0 floor. Modern Symfony 7 requires the Doctrine bridge's resolver instead.
  • No Laravel version applies.

Sequencing

  1. Do not add this to the dependency review backlog as a candidate; close it as out-of-stack.
  2. If a specific team insists on evaluating it, time-box a half-day spike in a throwaway Symfony skeleton, not in a Laravel app, and benchmark it against native EntityValueResolver on the same routes.
  3. If the spike passes and the team is on Symfony 5.x, treat it as a temporary shim with a dated removal ticket pointing at native resolvers.
  4. Add a lint rule or dependency-review allowlist entry that flags symfony/*-bundle packages in Laravel repos to catch future cases of the same confusion.

Operational Impact

Maintenance

  • We inherit it. With 0 dependents and no visible CI, every Symfony major upgrade becomes our bug. The code volume is small enough to fork and vendor, but that converts an external dependency into internal headcount for no differentiated value.
  • The cheaper long-run position is to own zero lines of code here and use framework primitives.

Support

  • No vendor, no commercial backing, no community forum presence, no Stack Overflow corpus. Troubleshooting is limited to reading the source directly.
  • Documentation is a README at best. Onboarding a new engineer to a bespoke resolver they have never seen is a real cost against a feature that is otherwise a one-line framework convention.

Scaling

  • Runtime cost is negligible: one repository lookup per request, which is identical to route model binding or #[MapEntity]. No throughput concern.
  • The scaling problem is organizational, not technical — knowledge concentration in whoever wrote the original integration.

Failure modes

  • Boot-time: container compilation failure on unsupported Symfony/PHP versions — hard failure, easy to catch in CI.
  • Resolution-time: ambiguous 404 vs. 500 when an entity is missing; inconsistent behavior across routes is the classic symptom and it surfaces as intermittent customer-facing errors.
  • Security: unintended mass assignment if field allowlists are absent or misconfigured — the highest-severity failure mode and the hardest to detect in review.
  • Silent drift: framework upgrades that change resolver registration order cause the bundle to stop firing without an exception, leaving controllers receiving raw route IDs instead of entities — a type error at best, a logic bug at worst.
  • Abandonment: no patch path for a vulnerability; we ship a fork under time pressure.

Ramp-up

  • Small surface area, so a senior engineer can read the whole thing in an hour — but that hour is spent learning something with no transferable value.
  • Realistic ramp-up for a team: 0 hours for Laravel (inapplicable), ~1 day for a Symfony team that should instead spend it learning the native value resolver they will migrate to anyway.

Recommendation

  • Reject for Laravel. Stack-incompatible by construction; the capability is already first-party via route model binding.
  • Reject for Symfony as well, on the stronger grounds that Symfony 6.2+ ships this natively and this package's ecosystem signals (0 stars, 0 dependents, 0.1 composite score) indicate an unmaintained reimplementation.
  • Opportunity score of 12.47 does not offset a stack mismatch plus a redundancy finding. Close the evaluation and record the rationale so it is not re-raised.
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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums