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 Route Deprecation Bundle

Symfony Route Deprecation Bundle Laravel Package

halloverden/symfony-route-deprecation-bundle

A Symfony bundle for deprecating routes: mark routes as deprecated so requests trigger configurable deprecation notices, helping you track usage and migrate consumers safely before removal.

View on GitHub
Deep Wiki
Context7

The Route Deprecation Bundle provides tools to deprecate routes in your Symfony application. It implements the IETF draft of The Deprecation HTTP Header Field.

Frequently asked questions about Symfony Route Deprecation Bundle
Can I install halloverden/symfony-route-deprecation-bundle in a Laravel application?
No. It is a Symfony bundle that depends on Symfony bundle registration and kernel events, neither of which has a direct Laravel equivalent. Installing it would pull symfony/framework-bundle into a dependency graph that already pins Symfony components at Laravel-compatible versions, creating version-conflict risk with no offsetting benefit. Treat it as a reference implementation, not a Laravel dependency.
How do I deprecate routes in Laravel if this package is Symfony-only?
Implement the behavior as Laravel HTTP middleware registered in the api route group, with route metadata supplied through Route::get(...)->defaults('deprecated_at', ...) or a thin custom route macro. The middleware should attach the Deprecation, Sunset, and Link headers to matching responses. The underlying listener logic is thin, so a clean Laravel implementation is usually faster than adapting the Symfony bundle.
Does this bundle emit the final RFC 9745 Deprecation header or an older IETF draft format?
The package is described as implementing the IETF draft of the Deprecation HTTP Header Field, and that draft became RFC 9745 in 2025. Earlier drafts used shapes such as Deprecation: true, while RFC 9745 defines a structured field with a timestamp value. You must verify the exact emitted format before relying on it, because a stale header format can be silently ignored by conformant parsers.
Does it support Sunset and Link headers alongside Deprecation?
Its stated focus is the Deprecation HTTP header, and whether it also emits Sunset from RFC 8594 and Link with rel="deprecation" from RFC 8288 must be confirmed in the source or documentation. For a production deprecation program, emit all three headers: Deprecation marks the route, Sunset gives consumers a removal date, and Link points to migration documentation. Do not assume full conformance without testing the actual response headers.
How do you mark a route as deprecated with this package?
The evaluation notes that the marking mechanism could be route defaults, a PHP attribute, or a configuration file, and the README excerpt does not settle the question. In a Laravel reimplementation, use route defaults such as deprecated_at, sunset_at, and deprecation_link, or a small route macro. Keep the marking mechanism explicit and consistent so API documentation generators can read the same metadata.
Does this package tell me who is still calling a deprecated route?
No. Response headers are outbound-only, so the package cannot identify consumers or count hits on deprecated routes. Deprecation without usage telemetry is an announcement, not a migration program. Add per-route counters, access-log parsing, or APM instrumentation before announcing a deprecation window.
Will CDNs or API gateways strip the Deprecation header?
Intermediaries such as CDNs and gateways often drop or normalize non-standard headers, so coverage must be verified at the edge rather than only at origin. The middleware ordering also matters: headers must survive response caching and be present on cached variants. Test the live edge response for Deprecation, Sunset, and Link before trusting the implementation.
What Laravel versions should a reimplementation target?
The evaluation recommends Laravel 10, 11, and 12, using standard HTTP middleware and route metadata. The Symfony bundle itself does not define Laravel version support because it is not a Laravel package. Keep the middleware framework-version-agnostic where possible and include a PHP version matrix in your own test suite.
How much work is it to build a Laravel equivalent?
Plan for roughly three to five engineering days for middleware, a route macro, configuration, conformance tests, and consumer-facing documentation. The Symfony bundle's listener logic is likely only 100 to 200 lines, so forking its logic is acceptable only if MIT attribution is retained. In practice, the adaptation work approaches the cost of a clean implementation.
Is this package maintained and safe to use in production?
The project has very low adoption, with 9 stars, zero dependents, and a bus factor of one. That means no upstream signal when a PHP or Symfony release breaks it and no community pressure to fix issues promptly. It is directionally interesting but operationally unproven, so use it as a spec reference and keep production dependencies on code you control.
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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager