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

Routing Bundle Laravel Package

modera/routing-bundle

Modera Routing Bundle adds flexible route management to PHP applications, with support for localized and dynamic routes, route caching, and easy integration into existing frameworks. It simplifies defining, matching, and generating URLs while keeping configuration clean and maintainable.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The framing mismatch must be resolved before any other decision: modera/routing-bundle is a Symfony bundle, not a Laravel package. It hooks into Symfony's bundle/DI lifecycle — a Bundle subclass, a container compiler pass, and Symfony routing resource loaders — to let other bundles self-register routing resources so the host app doesn't hand-edit app/config/routing.yml. Laravel has no bundle abstraction and no central routing manifest; routes come from service providers via loadRoutesFrom() / Route::group(). The problem the bundle solves does not exist in Laravel, and the mechanism it uses has no counterpart. Even in its native ecosystem it is architecturally superseded by AbstractBundle::configureRoutes(RoutingConfigurator) (Symfony 5.3+) and PrependExtensionInterface. Fit is: N/A for Laravel, obsolete-but-illustrative for Symfony.

Integration feasibility. Near zero as a drop-in on any modern stack. There is no port path short of rewrite — the value is ~20–40 lines of "prepend/scan a routing resource" logic, which is a one-day native implementation in a Laravel service provider or a Symfony extension. Composer resolution is likely a hard blocker: a 2016 bundle will pin Symfony 2.x/3.x and PHP 5.x constraints and won't install against PHP 8.x + Symfony 5/6/7 or Laravel 9/10/11 without --ignore-platform-reqs hacks that push risk into runtime. The 9.65 opportunity score reflects a real unmet need (dynamic, package-owned route registration), not a viable artifact — it should be read as a roadmap signal, not a dependency signal.

Technical risk. High and unmitigated:

  • Abandoned — [READ-ONLY] frozen repo, last release 2016-06-10, ~nine Symfony majors stale.
  • No adoption — 0 stars, 0 dependents, no downstream users to validate against, no issue history.
  • No security pipeline — no advisory feed, no maintainer on call, no CVE response path.
  • API rot — the routing loaders and ContainerBuilder APIs it leans on have been deprecated and removed.
  • Redundancy — the pattern is now native in both target frameworks, so adopting it imports liability for capability we already have.

Key questions.

  1. What framework are we actually running — Laravel, or a legacy Symfony app the request mislabeled? This flips the recommendation from "no" to "vendored fork only."
  2. Is the requirement "packages register routes without host config edits," or something narrower like per-package route prefixing?
  3. If adopted, who owns the fork? This is a fork-and-maintain commitment, not a dependency decision.
  4. What is the licensing status, and is the archived source complete enough to vendor cleanly?
  5. What is the cost of the native replacement versus adapting this? (Native is materially cheaper.)
  6. Does the target app rely on compiled/cached routing, and what invalidates that cache on deploy?

Integration Approach

Stack fit. PHP yes; framework: no for Laravel, marginal-but-obsolete for Symfony ≥5.3, and candidate-as-vendored-fork only for a legacy Symfony 2.x/3.x app under maintenance. If the estate is Laravel, mark this not applicable and implement the pattern natively — that is the leverage path.

Migration path.

  • Laravel (recommended): in the package service provider, call $this->loadRoutesFrom(__DIR__.'/routes/web.php') (separate calls for API/console), wrap in Route::middleware()/prefix() groups driven by publishable config, and apply route-name prefixes to prevent collisions. Delivers the bundle's stated capability with zero third-party surface.
  • Symfony ≥5.3: implement AbstractBundle::configureRoutes(RoutingConfigurator $routes); the framework imports automatically.
  • Symfony <5.3 (legacy): implement PrependExtensionInterface and prepend a framework.router.resource entry pointing at the bundle's routing file — exactly the bundle's behavior in ~30 lines we control.
  • Only if forced: vendor the archived source into src/ThirdParty/, pin an exact commit, and isolate behind a thin adapter so it can be swapped later.

Compatibility. Assume incompatibility until proven otherwise. Verify PHP constraint, Symfony major, and deprecated-API usage before any spike. If vendoring, lock constraints explicitly and never resolve it transitively into unrelated work.

Sequencing.

  1. Confirm the target framework with the requesting team (resolve Symfony-vs-Laravel ambiguity first).
  2. Timebox a one-day spike of the native replacement in a single provider or bundle extension.
  3. Contract-test route registration: names, prefixes, middleware, ordering, and precedence against existing routes.
  4. Validate route caching in a staging deploy (route:cache / cache:clear / router:cache equivalent).
  5. Define rollback as a config-level change, not a code revert.
  6. Escalate to a vendored fork only if the spike fails on a hard constraint.

Operational Impact

Maintenance. Upstream maintenance is effectively zero — archived repo, nine-year-stale release. Adoption transfers 100% of maintenance to us: PHP/Symfony upgrades, security patches, bug fixes, and framework-API churn. That ongoing cost vastly exceeds writing the functionality ourselves. Recommendation: reject; replace natively.

Support. No vendor, no community, no tracker activity, no Stack Overflow corpus. Zero stars / zero dependents means nobody to escalate to and no prior art for failure diagnosis — the team becomes the sole authority on a codebase nobody wrote.

Scaling. Routing is compile-time and cached, so runtime throughput is a non-issue. The scaling risk is organizational and topological: as more packages register routes dynamically, name collisions, path shadowing, and nondeterministic ordering grow more likely, and an unmaintained package offers no guardrails to detect them.

Failure modes.

  • Silent route shadowing — a dynamic route loses to (or beats) a host route, yielding a 404 or wrong handler with no build-time error.
  • Stale route cache — resources registered at container compile time aren't picked up without a cache rebuild; deploys that skip warm-up serve stale tables.
  • Composer resolution failure on PHP/Symfony upgrade, blocking unrelated dependency work.
  • Runtime fatal from a removed Symfony API, surfaced at container compile (deploy) rather than in tests.
  • Name-collision cascade when two packages register the same route name — last-writer-wins, no diagnostics.

Ramp-up. Near-zero for a Symfony-fluent engineer (standard DI/bundle idioms). Effectively blocked for a Laravel-only team: the conceptual model (packages own their routes) transfers cleanly, but none of the code does, and time spent learning a dead Symfony bundle's internals is pure waste. The native replacement is learnable in an afternoon by anyone who can write a service provider.

TPM bottom line. The opportunity signal is legitimate — package-owned, host-config-free route registration is a real ergonomics problem worth designing away in our plugin strategy. But it is already solved natively in both target frameworks, and this artifact is an archived, Symfony-only implementation with no users and no maintainer. Score it reject / replace natively; use it as a design reference for our own plugin onboarding model, never as an onboarded dependency — and if it is proposed for a Laravel service, stop the proposal: it is not installable there.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package