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

Rest Extra Bundle Laravel Package

mi/rest-extra-bundle

A Symfony bundle that extends your application's REST API capabilities with reusable helpers and services for building, structuring, and customizing JSON endpoints, reducing boilerplate and keeping API code consistent across projects of any size.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The most important finding: mi/rest-extra-bundle is a Symfony HttpKernel bundle, not a Laravel package. It ships a Bundle subclass, a DI extension, and a convention-based routing loader layered on top of FOSRestBundle and SensioFrameworkExtraBundle. In a Laravel codebase it cannot be leveraged at all — Laravel has no bundle registration, no sensio/framework-extra-bundle, and no FOSRestBundle. If the target stack is Laravel, fit is effectively zero and the evaluation ends here.
  • If the target is a legacy Symfony service, the bundle is a thin opinion layer, not infrastructure. Its value proposition — "avoid annotations" by declaring REST routes in YAML/XML or via controller conventions instead of @Rest\Get / @Route — is a style preference, worth roughly 50–150 lines of custom route loader. That is the correct baseline against which to judge any adoption decision.
  • Low architectural coupling is a genuine plus: it does not own persistence, serialization, or HTTP negotiation, so removal is cheap if isolated behind our own route config.

Integration feasibility

  • Mechanically trivial: composer require mi/rest-extra-bundle, register in bundles.php/AppKernel, point routing at the provided loader. No database, no services to provision, no external calls.
  • The real constraint is transitive: adoption only makes sense where FOSRestBundle and SensioFrameworkExtraBundle are already present, so this bundle amplifies rather than reduces dependency surface on two packages that are themselves in decline.

Technical risk

  • Ecosystem EOL is the dominant risk. SensioFrameworkExtraBundle's annotation support was deprecated in Symfony 6.2 and annotation-based config was removed in Symfony 7; FOSRestBundle is maintenance-mode and largely superseded by API Platform or explicit attribute routing. A package whose entire purpose is suppressing annotations in that pair is solving a problem the ecosystem has already retired.
  • Zero validation signals. 0 stars, 0 dependents, single-org provenance (MovingImage24), last release 2021-07-02. The automated "opportunity: 6.59" should be heavily discounted — it is not corroborated by any adoption evidence. Assume bus factor of one and possible repo archival.
  • Runtime currency. A 2021 release predates mature PHP 8.1/8.2/8.3 and Symfony 6 support. Expect composer constraint conflicts and deprecation noise at minimum; expect silent behavioural drift at worst.
  • Failure here is not subtle: a routing loader that fails is a 404 or a route collision in production, not a warning.

Key questions

  1. Which framework is actually in scope — Laravel (reject) or a Symfony 4.4/5.x legacy service (evaluate)?
  2. Is the repo archived or receiving security patches? Has anyone forked it?
  3. What is the concrete cost of the annotation burden we would remove — how many controllers, how many routes?
  4. Does our Symfony version still permit annotation config, and what is the timeline to attributes/routes.yaml?
  5. Who owns the fork internally if upstream is dead?

Integration Approach

Stack fit

  • Laravel: not applicable. The equivalent capability is native — Route::apiResource, implicit controller binding, and Form Requests — with no third-party layer required. Do not attempt a port.
  • Symfony ≤5.4 with FOSRestBundle + SensioFrameworkExtraBundle: viable, but only as a transitional convenience on a service already slated for modernization.
  • Symfony ≥6.3 / 7.x: not viable. Attribute routing and routes.yaml already deliver the stated benefit; adding a 2021 bundle buys nothing and costs a dependency.

Migration path

  1. Inventory: count controllers/actions using @Rest\* and @Route annotations, and confirm the bundle's loader can express all of them (nested prefixes, requirements, HTTP method matrices, versioning).
  2. Vendor/fork into an internal namespace (acme/rest-extra-bundle) with pinned constraints, a PHP 8.x CI matrix, and a changelog — treat upstream as archived from day one.
  3. Pilot on one low-traffic controller; diff the generated route table (bin/console debug:router) before and after to prove parity.
  4. Expand controller-by-controller, keeping debug:router diffing as the acceptance gate for each slice.

Compatibility

  • Validate composer.json constraints against our PHP and Symfony versions before anything else; expect to patch method signatures for PHP 8 and to reconcile with SensioFrameworkExtraBundle 6.x if present. Check for conflicts with API Platform or any other route loader in the kernel.

Sequencing

  • Position this after the decision on the long-term routing strategy, not before. If we are moving to attributes or to API Platform within two quarters, adopting a bundle that exists to avoid attributes is negative-value work. If we are frozen on Symfony 5.x for 18+ months, the pilot is defensible.

Operational Impact

Maintenance

  • Assume we own it. Upstream is a 2021 snapshot from a single organization with no visible downstream users. Budget ongoing fork maintenance (PHP/Symfony bump patches, security triage) rather than assuming passive consumption. MIT licensing makes forking legally clean, which is the main thing this package has going for it.

Support

  • No vendor, no SLA, no community. Documentation is a README. Onboarding knowledge must be written internally or it walks out the door with the one engineer who set it up.

Scaling

  • Not a scalability factor. It is a compile-time DI/routing concern with negligible request-path cost. Do not let it appear on a performance risk register — that would misdirect attention.

Failure modes

  • Silent route loss — loader misconfiguration yields 404s rather than exceptions; caught only by route-table diffing and integration tests.
  • Route collisions/ambiguity — convention-generated routes can shadow hand-written ones, producing wrong-controller dispatch that passes smoke tests.
  • Container compile failure on bundle registration or on Symfony/PHP upgrades — loud, cheap to fix, but blocks deploys.
  • Parity drift between YAML/XML route definitions and the annotation semantics they replaced (requirements, defaults, methods) — subtle, and the highest-cost failure class here.
  • Upgrade cliff — the package becomes the blocker when the platform team wants Symfony 6/7.

Ramp-up

  • Individual developer ramp-up is low: half a day for a Symfony-fluent engineer. The organizational ramp-up is the real cost — every engineer touching routing must learn a non-standard, single-vendor convention that the rest of the Symfony ecosystem no longer uses.
  • Net TPM read: low effort, low reward, high obsolescence risk. Recommend rejecting for any Laravel scope and, for Symfony legacy scope, preferring native routes.yaml or a ~100-line internal route loader over adopting a zero-signal, three-year-stale dependency.
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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
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
adachsoft/php-code-style