migrify/symfony-route-usage
Symfony Route Usage scans your Symfony app to find routes that are never referenced anywhere in your code, helping you spot dead endpoints and clean up routing config. It reports unused routes so you can safely remove them, keeping your route definitions lean and your application easier to maintain.
Important framing for the decision record: despite being scoped here as a Laravel/PHP package, this is a Symfony package (Symfony routing/kernel), and it lives in a deprecated-packages organization with zero stars and zero dependents. For a Laravel codebase it is not adoptable — the routing, middleware, and kernel models differ. Treat this as market signal that the problem is real and small, and treat the solution as a ~1-day in-house middleware spike.
Consider the capability (not necessarily this package) when:
Look elsewhere — or build instead — when:
Decision rule: adopt the pattern, not the package. Write the smallest thing that logs route name, method, status, and caller identity to a queryable store; run it for 30 days; then make the deletion decision. Cheaper than a dependency risk review, and you own the schema.
To executives (one paragraph): We have a cheap opportunity to shrink our API surface and reduce maintenance and security exposure. Today we can't confidently answer "which endpoints does anyone actually use?" — so we keep everything, and we pay for it in maintenance, testing, and attack surface. Instrumenting route usage for 30 days gives us a defensible list of candidates to retire, and a credible deprecation calendar for versioned APIs. Cost is small and bounded (roughly one engineer-day plus a month of observation); the payoff is a smaller surface to secure and migrate. Recommendation: build the instrumentation in-house rather than adopt the package under review — it's a deprecated, zero-adoption Symfony library that doesn't fit our Laravel stack, so it's useful as a design reference and problem validation only.
To engineering (the honest version): The package detects used and unused Symfony routes — a genuinely useful idea, well-aligned with our cleanup goals, but it's archived, unmaintained, has no dependents, and doesn't target Laravel. Do not add it as a dependency. Instead, implement equivalent instrumentation as a global middleware: log route name, method, response status, and a caller identifier; avoid raw path parameters (PII and cardinality); sample if volume demands it; aggregate into a weekly report. Then we use that report to drive route removal tickets. Flag two things before we commit: per-tenant attribution (one customer using a "dead" route is a breaking change, not a cleanup), and a documented review step so "unused" isn't treated as automatically safe to delete.
How can I help you explore Laravel packages today?