Skip to content

Commit 37f05be

Browse files
一庭霜月thilanga
authored andcommitted
fix:Middleware terminate() not being called (dingo#1485)
fix:Middleware terminate() not being called
1 parent 2d41f7f commit 37f05be

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/Routing/Adapter/Lumen.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,14 @@ protected function removeMiddlewareFromApp()
225225
$reflection = new ReflectionClass($this->app);
226226
$property = $reflection->getProperty('middleware');
227227
$property->setAccessible(true);
228-
229-
$property->setValue($this->app, []);
230-
228+
$oldMiddlewares = $property->getValue($this->app);
229+
$newMiddlewares = [];
230+
foreach ($oldMiddlewares as $middle) {
231+
if ((new ReflectionClass($middle))->hasMethod('terminate') && $middle != 'Dingo\Api\Http\Middleware\Request') {
232+
$newMiddlewares = array_merge($newMiddlewares, [$middle]);
233+
}
234+
}
235+
$property->setValue($this->app, $newMiddlewares);
231236
$property->setAccessible(false);
232237
}
233238

0 commit comments

Comments
 (0)