Skip to content

Commit

Permalink
Ensure catch-all routes do not take precedence
Browse files Browse the repository at this point in the history
Fixes #2646 by moving to a regular service provider instead of inheriting from Laravel's route service provider, because it loads routes after boot, but we need registered as soon as the router is resolved.

This is a problem that affected first-party Laravel tools like Pulse, too: laravel/pulse@9ab920b
  • Loading branch information
ifox committed Oct 14, 2024
1 parent 90e3f2d commit 70da900
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions src/RouteServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use A17\Twill\Http\Middleware\ValidateBackHistory;
use A17\Twill\Services\MediaLibrary\Glide;
use A17\Twill\Facades\TwillRoutes;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
Expand All @@ -29,26 +29,27 @@ public function boot(): void
$this->registerRouteMiddlewares();
$this->app->bind(TwillRoutes::class);
$this->registerRouteMacros();
parent::boot();
}

public function map(Router $router): void
public function register()
{
\A17\Twill\Facades\TwillRoutes::registerRoutePatterns();

$this->mapInternalRoutes(
$router,
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
);
$this->callAfterResolving(Router::class, function (Router $router) {
\A17\Twill\Facades\TwillRoutes::registerRoutePatterns();

$this->mapInternalRoutes(
$router,
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
);

$this->mapHostRoutes(
$router,
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
);
$this->mapHostRoutes(
$router,
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
);
});
}

private function mapHostRoutes(
Expand Down

0 comments on commit 70da900

Please sign in to comment.