Slim Framework 매뉴얼 미들웨어 – 메서드, 출력 버퍼링

메서드 재정의 미들웨어 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();