Naify\Psr\Message\Response クラス

implements Naify\Psr\Contract\ResponseInterface, Naify\Psr\Contract\MessageInterface
use Naify\Psr\Message\MessageTrait

PSR-7 レスポンス実装 — ResponseInterface

HTTP レスポンスを表現する不変オブジェクト。 すべての with*() メソッドは clone して新しいインスタンスを返す。

使用例

$response = new Response();
$response = $response->withStatus(404);
$response = $response->withHeader('Content-Type', 'text/html');
$response->getBody()->write('<h1>Not Found</h1>');

設計意図

readonly 化は各 with メソッドの PHP 8.5 clone with 対応と初期化経路の確認を前提とする。 PHP 8.3 の再初期化は __clone() 内だけであり、clone 後の代入には使えない。

プロパティ

名前型説明
private $statusCode int HTTP ステータスコード
private $reasonPhrase string "OK" や "Not Found" などの理由フレーズ

メソッド

メソッド説明
public __construct(int $status = 200, array $headers = '...', ?StreamInterface $body, string $version = 1.1, string $reason = ): 不変レスポンスオブジェクトを生成する
public getStatusCode(): int 現在の HTTP ステータスコードを返す
public withStatus(int $code, string $reasonPhrase = ): static ステータスコードを変更したコピーを返す 8.5 → clone with
public getReasonPhrase(): string 現在の理由フレーズを返す

継承プロパティ

名前型説明継承元
private $headers array ヘッダー(オリジナルケース) MessageTrait
private $headerNames array 小文字ヘッダー名 → オリジナルケースのマップ MessageTrait
private $body StreamInterface メッセージボディ MessageTrait
private $protocolVersion string HTTP プロトコルバージョン MessageTrait

継承メソッド

メソッド説明継承元
private setHeaders(): void ヘッダー配列を正規化して格納する(コンストラクタ用) MessageTrait
public getProtocolVersion(): string 現在の HTTP プロトコルバージョンを返す MessageTrait
public withProtocolVersion(): static プロトコルバージョンを変更した新しいインスタンスを返す MessageTrait
public getHeaders(): array 保持しているヘッダーをすべて返す MessageTrait
public hasHeader(): bool 指定したヘッダーの存在を判定する MessageTrait
public getHeader(): array 指定したヘッダーの値一覧を返す MessageTrait
public getHeaderLine(): string 指定したヘッダーを 1 行文字列にして返す MessageTrait
public withHeader(): static ヘッダーを設定する(既存の同名ヘッダーを置換) MessageTrait
public withAddedHeader(): static ヘッダーを追加する(既存の同名ヘッダーに値を追加) MessageTrait
public withoutHeader(): static ヘッダーを削除する MessageTrait
public getBody(): StreamInterface メッセージボディのストリームを返す MessageTrait
public withBody(): static メッセージボディを変更した新しいインスタンスを返す MessageTrait