2016-06-24 3 views
3

나는 $app에서 여러 미들웨어 클래스를 추가하는 방법을 알고 : 경로에슬림 3 - 경로에 여러 미들웨어 클래스를 추가하는 방법?

$app->add(new Middlewares\VerifyCsrfToken()); 
$app->add(new Middlewares\RemoveTrailingSlash()); 

하지만 어떻게? 코멘트에서 언급 한 바와 같이 단순히 여러 add() 함께이야 체인 수

$app->get('/', function($request, $response){ 
    return $response; 
})->add(new Middlewares\VerifyCsrfToken()) 
    ->add(new Middlewares\RemoveTrailingSlash()); 
+3

이 정확하게 맞습니다. – geggleto

+0

정말요? haha 나는 그것을 시험해 볼 것이다. 감사합니다 :) – Vashtamyty

+1

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

답변

4

add()Route 개체의 인스턴스를 반환합니다. 이 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

관련 문제