Naify\Router\ResponseContext クラス

レスポンスコンテキスト — Response のミュータブル操作面

PSR-7 Response のイミュータブル操作を内部に隠蔽し、 開発者はミュータブルに setStatus/setHeader/setBody で操作できる。 PSR の完全機能が必要な場合は toPsr() で PSR Response を取得する。

使用例

$context->response->setStatus(201);
$context->response->setHeader('Content-Type', 'application/json');
$context->response->setBody('{"ok":true}');

// ヘッダー追加 (get してから set)
$cookies = $context->response->getHeader('Set-Cookie');
$cookies[] = 'token=abc';
$context->response->setHeader('Set-Cookie', $cookies);

// ヘッダー削除
$context->response->setHeader('X-Unwanted', null);

プロパティ

名前型説明
private $response ResponseInterface 内部 PSR-7 レスポンス

メソッド

メソッド説明
public __construct(ResponseInterface $response): ResponseContext を生成する
public setStatus(int $code, string $reason = ): void HTTP ステータスコードを設定する
public getStatus(): int HTTP ステータスコードを取得する
public setHeader(string $name, array|string|null $value): void ヘッダーを設定する
- string: 値を置換
- array: 複数値を置換
- null: ヘッダーを削除
public getHeader(string $name): array ヘッダーの値を取得する
public setBody(string $content): void レスポンスボディを設定する(上書き)
public getBody(): string レスポンスボディを文字列で取得する
public setProtocolVersion(string $version): void HTTP プロトコルバージョンを設定する
public toPsr(): ResponseInterface 内部の PSR-7 Response を取得する
ミドルウェアパイプラインや FW 内部で PSR Response が必要な場合に使う。
通常のアプリコードでは setStatus/setHeader/setBody を使うこと。