Skip to content

Commit 2cee543

Browse files
authored
Merge pull request #153 from claudiodekker/laravel-5.4-auto-middleware-registration
Support Auto Registration of Middleware on Laravel 5.4+
2 parents fecb9ec + 1e4ae86 commit 2cee543

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/ServiceProvider.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,15 @@ protected function registerRouterMacro()
5353
protected function registerMiddleware()
5454
{
5555
$kernel = $this->app[Kernel::class];
56+
$group = Config::get('inertia.middleware_group', 'web');
5657

58+
// Laravel >= 6.9.0
5759
if (method_exists($kernel, 'appendMiddlewareToGroup')) {
58-
$kernel->appendMiddlewareToGroup(
59-
Config::get('inertia.middleware_group', 'web'),
60-
Middleware::class
61-
);
60+
$kernel->appendMiddlewareToGroup($group, Middleware::class);
61+
62+
// Laravel >= 5.4.4 && < 6.9.0
63+
} elseif ($this->app[Router::class]->hasMiddlewareGroup($group)) {
64+
$this->app[Router::class]->pushMiddlewareToGroup($group, Middleware::class);
6265
}
6366
}
6467

tests/ServiceProviderTest.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Inertia\Inertia;
77
use Inertia\Middleware;
88
use Illuminate\Http\Request;
9+
use Illuminate\Routing\Router;
910
use Illuminate\Support\MessageBag;
1011
use Illuminate\Support\Facades\App;
1112
use Illuminate\Support\ViewErrorBag;
@@ -48,11 +49,16 @@ public function test_route_macro_is_registered()
4849
$this->assertEquals(['component' => 'User/Edit', 'props' => ['user' => ['name' => 'Jonathan']]], $route->defaults);
4950
}
5051

51-
public function test_middleware_is_registered()
52+
public function test_middleware_is_registered_to_the_web_group()
5253
{
53-
$middleware = App::make(Kernel::class)->getMiddlewareGroups();
54+
$webRoute = Route::middleware('web')->get('/');
55+
$apiRoute = Route::middleware('api')->get('/');
5456

55-
$this->assertContains(Middleware::class, $middleware['web']);
57+
$webMiddleware = App::make(Router::class)->gatherRouteMiddleware($webRoute);
58+
$apiMiddleware = App::make(Router::class)->gatherRouteMiddleware($apiRoute);
59+
60+
$this->assertContains(Middleware::class, $webMiddleware);
61+
$this->assertNotContains(Middleware::class, $apiMiddleware);
5662
}
5763

5864
public function test_validation_errors_are_registered()

0 commit comments

Comments
 (0)