
메서드 재정의 미들웨어 Method Overriding Middleware
Method Overidding Middleware를 사용하면 ‘X-Http-Method-Override’ 요청 헤더 또는 요청 본문 매개 변수 ‘_Method’를 사용하여 수신 요청의 메서드를 재정의할 수 있습니다. 미들웨어는 라우팅 미들웨어가 추가된 후에 배치되어야 합니다.
사용법
<?php
use Slim\Factory\AppFactory;
use Slim\Middleware\MethodOverrideMiddleware;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
// Add RoutingMiddleware before we add the MethodOverrideMiddleware so the method is overrode before routing is done
$app->addRoutingMiddleware();
// Add MethodOverride middleware
$methodOverrideMiddleware = new MethodOverrideMiddleware();
$app->add($methodOverrideMiddleware);
// ...
$app->run();
출력 버퍼링 미들웨어 (Output Buffering Middleware)
Output Buffering Middleware를 사용하면 두 가지 출력 버퍼링 모드인 ‘APPEND'(기본값)와 ‘PREPEND’ 모드 사이에서 전환할 수 있습니다. 부록 모드는 기존 응답 본문을 사용하여 내용을 추가합니다. PREPEND 모드는 새 응답 본문 객체를 생성하고 기존 응답 본문의 출력에 내용을 추가합니다. 이 미들웨어는 미들웨어 스택 중앙에 위치해야 마지막에 실행됩니다.
사용법
<?php
use Slim\Factory\AppFactory;
use Slim\Middleware\OutputBufferingMiddleware;
use Slim\Psr7\Factory\StreamFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$streamFactory = new StreamFactory();
/**
* The two modes available are
* OutputBufferingMiddleware::APPEND (default mode) - Appends to existing response body
* OutputBufferingMiddleware::PREPEND - Creates entirely new response body
*/
$mode = OutputBufferingMiddleware::APPEND;
$outputBufferingMiddleware = new OutputBufferingMiddleware($streamFactory, $mode);
$app->add($outputBufferingMiddleware);
// ...
$app->run();