2016-06-24 3 views
3

私は$appで複数のミドルウェアクラスを追加する方法を知っている:ルート上のスリム3 - ルート上に複数のミドルウェアクラスを追加するにはどうすればよいですか?

$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()); 
+3

これはまさに正しいです。 – geggleto

+0

本当ですか?私はそれを試してみましょう。ありがとう:) – Vashtamyty

+1

例:https://github.com/slimphp/Slim/blob/3.x/tests/AppTest.php#L775-L793 – geggleto

答えて

4

add()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; 
}); 
+0

ありがとうございました! – Vashtamyty

関連する問題