Naify\Psr\Message\MessageTrait トレイト

PSR-7 MessageInterface 共通実装トレイト

Response / ServerRequest が共有するヘッダー・ボディ・プロトコルバージョン操作を 一箇所にまとめ、重複実装を排除する。

使用例

class MyMessage implements MessageInterface {
    use MessageTrait;
}

プロパティ

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

メソッド

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