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.
Architecture fit
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.@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.Integration feasibility
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.Technical risk
Key questions
routes.yaml?Stack fit
Route::apiResource, implicit controller binding, and Form Requests — with no third-party layer required. Do not attempt a port.routes.yaml already deliver the stated benefit; adding a 2021 bundle buys nothing and costs a dependency.Migration path
@Rest\* and @Route annotations, and confirm the bundle's loader can express all of them (nested prefixes, requirements, HTTP method matrices, versioning).acme/rest-extra-bundle) with pinned constraints, a PHP 8.x CI matrix, and a changelog — treat upstream as archived from day one.bin/console debug:router) before and after to prove parity.debug:router diffing as the acceptance gate for each slice.Compatibility
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
Maintenance
Support
Scaling
Failure modes
Ramp-up
routes.yaml or a ~100-line internal route loader over adopting a zero-signal, three-year-stale dependency.How can I help you explore Laravel packages today?