Skip to content

Commit 70da900

Browse files
committed
Ensure catch-all routes do not take precedence
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
1 parent 90e3f2d commit 70da900

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

src/RouteServiceProvider.php

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use A17\Twill\Http\Middleware\ValidateBackHistory;
1313
use A17\Twill\Services\MediaLibrary\Glide;
1414
use A17\Twill\Facades\TwillRoutes;
15-
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
15+
use Illuminate\Support\ServiceProvider;
1616
use Illuminate\Routing\Router;
1717
use Illuminate\Support\Facades\Route;
1818
use Illuminate\Support\Str;
@@ -29,26 +29,27 @@ public function boot(): void
2929
$this->registerRouteMiddlewares();
3030
$this->app->bind(TwillRoutes::class);
3131
$this->registerRouteMacros();
32-
parent::boot();
3332
}
3433

35-
public function map(Router $router): void
34+
public function register()
3635
{
37-
\A17\Twill\Facades\TwillRoutes::registerRoutePatterns();
38-
39-
$this->mapInternalRoutes(
40-
$router,
41-
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
42-
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
43-
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
44-
);
36+
$this->callAfterResolving(Router::class, function (Router $router) {
37+
\A17\Twill\Facades\TwillRoutes::registerRoutePatterns();
38+
39+
$this->mapInternalRoutes(
40+
$router,
41+
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
42+
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
43+
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
44+
);
4545

46-
$this->mapHostRoutes(
47-
$router,
48-
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
49-
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
50-
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
51-
);
46+
$this->mapHostRoutes(
47+
$router,
48+
\A17\Twill\Facades\TwillRoutes::getRouteGroupOptions(),
49+
\A17\Twill\Facades\TwillRoutes::getRouteMiddleware(),
50+
\A17\Twill\Facades\TwillRoutes::supportSubdomainRouting()
51+
);
52+
});
5253
}
5354

5455
private function mapHostRoutes(

0 commit comments

Comments
 (0)