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

Laravel Advanced Route Laravel Package

lesichkovm/laravel-advanced-route

An advanced route class for Laravel that extends the framework's default router, letting you register routes with multiple HTTP methods, domains, HTTPS constraints, middleware, and names in one fluent call. Keeps complex route definitions cleaner and easier to maintain.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. lesichkovm/laravel-advanced-route is a thin convention-over-configuration layer on top of Laravel's native router. It exposes an AdvancedRoute facade that maps HTTP verbs to conventionally named controller methods (e.g. getIndex, postStore), reviving the Laravel 4–era implicit controller routing model that was removed in Laravel 5. Architecturally this is a very small surface: one service provider, one facade, and a registration helper that ultimately delegates to Route:: calls. It does not replace the router, does not touch the request lifecycle, and does not introduce middleware, container bindings, or a new dispatch path. That means the blast radius of adoption is genuinely small — which is the package's main technical virtue.

Integration feasibility. Fits any Laravel application on a modern PHP 8.x runtime, including API-only services. Integration is a composer require, package discovery picks up the provider, and adoption can be incremental per route group. The main feasibility question is not "can we install it" but "does the convention map cleanly onto our existing controller method naming." Controllers with action-style names (store, update, destroy) or invokable/single-action controllers require renaming or a wrapper, and renaming public controller methods is a breaking change for any test suite or Blade/route() reference pointing at them.

Technical risk. The dominant risk is not code quality — it's project durability. 70 stars and a single maintainer place this firmly in the long-tail of the Laravel ecosystem: no security disclosure process, no meaningful issue triage capacity, and a high probability of abandonment. Secondary risks:

  • Implicit route resolution degrades discoverability. php artisan route:list still works, but a reader of routes/web.php can no longer see which URIs exist; the route table becomes a runtime artifact rather than a declarative one. This is a real cost for incident response and security review.
  • Convention collisions. Method name collisions or unexpected public methods on a controller can silently produce routes that were never intended — the failure mode is over-exposure rather than under-exposure.
  • Cache interaction. Routes registered dynamically during provider boot must be verified against php artisan route:cache / route:clear in CI, not just locally.
  • Static analysis. Facade-driven dynamic registration is opaque to PHPStan/Larastan route helpers and to IDE "find usages."

Key questions.

  1. Which Laravel and PHP versions are actively tested in CI, and is illuminate/routing constrained to a range that survives the next major (Laravel 13)?
  2. Does the provider register in boot() and behave correctly under route:cache, Octane, and config caching?
  3. What is the exact method-naming grammar, and is there an explicit opt-out/allowlist to prevent unintended method exposure?
  4. Is there a documented escape hatch — can a single route within an advanced-routed group be overridden with an explicit Route::get(...)?
  5. Who is willing to own a vendor fork if the upstream goes quiet?
  6. Does it cooperate with route model binding, route middleware arrays, and route-name generation?

Integration Approach

Stack fit. Well-suited to a team that already likes convention-over-configuration and has consistent controller naming. Poorly suited to teams relying on invokable controllers, Route::resource, or heavy route-level middleware/domain/prefix composition, where the native router's explicitness is the point. It is a developer-ergonomics package, not a capability package — it adds nothing you cannot do with native routes.

Migration path. Do not attempt a big-bang rewrite of routes/. Recommended sequence:

  1. Introduce the package and pick one bounded module — ideally an internal admin or back-office area with low public exposure and a small controller set.
  2. Normalize that module's controller methods to the package's expected verb prefixes; capture the pre-change route table (artisan route:list --json) as a golden file and diff post-change. Any new or missing route is a finding.
  3. Add a CI assertion that the route table is byte-identical (modulo naming) to the golden file, so convention drift fails the build.
  4. If the pilot is clean, expand module-by-module. If not, remove the package — the removal cost is a single provider and a handful of renamed methods.

Compatibility. Verify against the team's actual pinned Laravel minor, not just the constraint in composer.json. Explicitly test: route:cache build in CI, php artisan route:list output, 404/405 behavior for unmapped verbs, and interaction with any global route middleware (auth, throttle, localization prefixes). Also confirm it does not conflict with third-party packages that register routes in their own providers.

Sequencing. Introduce after — not during — a major Laravel upgrade. Bundle it with a route-table snapshot test so it ships with its own safety net. Keep adoption off the critical path (public API, auth, payments) until at least one full release cycle of clean operation.

Recommendation. Treat as a nice-to-have, low-priority adoption. The 16.7 score and 70-star footprint argue for piloting only where the ergonomic win is real and the blast radius is contained. For a greenfield service, native resource routes plus a consistent controller convention achieve 90% of the benefit with zero third-party risk; prefer that default and require a specific justification to deviate.

Operational Impact

Maintenance. Ongoing cost is low in absolute terms (small package, stable API) but the ownership burden is effectively yours. Budget for: pinning to an exact version, a documented fork-and-vendor plan, and one engineer designated as the maintainer-of-last-resort. Add it to the dependency review checklist alongside any package with fewer than ~500 stars and one maintainer.

Support. No commercial support, no SLA, no security contact. Vulnerability response is best-effort from one individual. Given the package sits on the routing layer — the most security-sensitive part of the request path — that is a materially worse risk profile than a 70-star formatting helper. Mitigate by treating the package as untrusted input: review the diff on every version bump, and pin with composer.lock committed.

Scaling. Negligible runtime cost: routes resolve to the same compiled RouteCollection as native definitions, so throughput and memory are effectively unchanged. Under Octane, no long-lived state concerns beyond what the native router already handles. The scaling limit is cognitive, not computational — as the route surface grows, implicit registration makes the application harder to reason about, and the cost compounds with team size and on-call rotation.

Failure modes.

  • Silent over-exposure: a new public controller method matching the naming grammar becomes reachable without a code review flagging it. This is the highest-severity failure and needs a route-table diff in CI to catch.
  • Silent under-exposure: a method rename drops a route; manifest as a 404 in production rather than a test failure unless the golden-file assertion exists.
  • Cache staleness: route cache built before a controller change serves stale mappings; standard Laravel cache-clearing discipline mitigates.
  • Abandonment: a future Laravel major changes routing internals and the package never updates — forcing an unplanned, unscheduled removal under time pressure. Pre-write the removal runbook now.
  • Debuggability degradation: on-call engineers unfamiliar with the convention take longer to trace a URI to a handler. route:list mitigates but is not discoverable from source.

Ramp-up. Expect roughly half a day per engineer to learn the naming grammar and the debugging workflow, plus documentation debt in the team's own conventions guide. The larger cost is the reverse skill: engineers must learn to stop writing explicit routes for covered modules, which is a habit change, not a knowledge gap. Onboarding friction is modest but non-zero, and it is a permanent tax for as long as the package is in the tree.

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.
skyraptor/chatter
edlugz/sasapay
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