Naify\Psr\Message\Stream クラス

implements Naify\Psr\Contract\StreamInterface, Stringable

PSR-7 ストリーム実装 — StreamInterface

php://temp をデフォルトリソースとし、レスポンスボディの読み書きを担う。 PSR-7 の不変性契約により、withBody() 等で新しいストリームを差し替え可能。

使用例

$stream = new Stream();
$stream->write('Hello, World!');
echo $stream;              // "Hello, World!"
echo $stream->getSize();   // 13

// 既存リソースをラップ
$stream = new Stream(fopen('php://input', 'r'));

プロパティ

名前型説明
private $resource mixed 実体の PHP ストリーム。detach/close 後は null になる

メソッド

メソッド説明
public __construct(mixed $resource): php://temp または既存 resource をラップして生成する
public static create(string $content = ): static 文字列からストリームを生成するファクトリメソッド
public close(): void ストリームを閉じて内部 resource を解放する
public detach(): resource|null リソースをデタッチして返す
public getSize(): ?int ストリームサイズを返す
public tell(): int 現在のポインタ位置を返す
public eof(): bool 読み取り位置が EOF に達しているか返す
public isSeekable(): bool シーク可能なストリームか判定する
public seek(int $offset, int $whence = 0): void 指定位置にシークする
public rewind(): void ストリームの読み書き位置を先頭へ戻す
public isWritable(): bool 書き込み可能なストリームか判定する
public write(string $string): int ストリームに書き込む
public isReadable(): bool 読み取り可能なストリームか判定する
public read(int $length): string ストリームから指定バイト数を読み込む
public getContents(): string 現在位置から末尾までの内容を返す
public getMetadata(?string $key): mixed ストリームメタデータを取得する
`stream_get_meta_data()` の結果をそのまま返す薄いラッパー。