Slim 3 - 如何在路由上添加多个中间件 类?
Slim 3 - How to add multiple middleware classes on a route?
我知道如何在 $app
中添加多个中间件 class:
$app->add( new Middlewares\VerifyCsrfToken() );
$app->add( new Middlewares\RemoveTrailingSlash() );
但是路线如何?
$app->get('/', function($request, $response){
return $response;
})->add( new Middlewares\VerifyCsrfToken() )
->add( new Middlewares\RemoveTrailingSlash() );
如评论中所述,add()
returns Route
对象的实例,因此您可以简单地将多个 add()
链接在一起。
此 unit test 展示了如何操作:
$app = new App();
$app->get('/', function ($req, $res) {
return $res->write('Center');
})->add(function ($req, $res, $next) {
$res->write('In1');
$res = $next($req, $res);
$res->write('Out1');
return $res;
})->add(function ($req, $res, $next) {
$res->write('In2');
$res = $next($req, $res);
$res->write('Out2');
return $res;
});
我知道如何在 $app
中添加多个中间件 class:
$app->add( new Middlewares\VerifyCsrfToken() );
$app->add( new Middlewares\RemoveTrailingSlash() );
但是路线如何?
$app->get('/', function($request, $response){
return $response;
})->add( new Middlewares\VerifyCsrfToken() )
->add( new Middlewares\RemoveTrailingSlash() );
如评论中所述,add()
returns Route
对象的实例,因此您可以简单地将多个 add()
链接在一起。
此 unit test 展示了如何操作:
$app = new App();
$app->get('/', function ($req, $res) {
return $res->write('Center');
})->add(function ($req, $res, $next) {
$res->write('In1');
$res = $next($req, $res);
$res->write('Out1');
return $res;
})->add(function ($req, $res, $next) {
$res->write('In2');
$res = $next($req, $res);
$res->write('Out2');
return $res;
});