componenta/stream-iterator
Composer 安装命令:
composer require componenta/stream-iterator
包简介
Stream iterator for line-based resource traversal
README 文档
README
Iterator for reading PSR-7 streams in fixed-size chunks.
Use it for uploads, downloads, hashing, conversion, and other streaming workflows where loading the full body into memory is unnecessary.
Installation
composer require componenta/stream-iterator
Requires psr/http-message.
Related Packages
| Package | Why it matters here |
|---|---|
psr/http-message |
StreamIterator reads PSR-7 StreamInterface. |
psr/http-message |
Uploads, downloads, and request bodies can expose PSR-7 streams. |
componenta/iterator |
Use it when replayable iteration is needed; stream iteration keeps only the current chunk. |
componenta/image-converter |
Upload streams can be read before media processing. |
Usage
use Componenta\Stdlib\StreamIterator; $iterator = new StreamIterator($stream, bytesPerIteration: 1024); foreach ($iterator as $offset => $chunk) { // $offset is the stream position where the chunk started. }
Contract
StreamIterator implements Iterator and Stringable.
Important behavior:
current()is idempotent- reading happens during
rewind()andnext() - repeated calls to
current()do not consume more bytes key()returns the chunk start offsetwithStream()andwithBytes()return cloned iteratorssetBytes()mutates bytes-per-iteration on the current instance
Memory Model
The iterator keeps only the current chunk. It does not cache previous chunks and does not make a one-shot stream replayable. Use componenta/iterator if you need replayable iteration.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-14