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 を使うこと。 |