nucleardog / streams
v1.0.0
2024-07-04 13:58 UTC
Requires
- php: ^8.2
This package is auto-updated.
Last update: 2024-09-04 14:52:15 UTC
README
PHP的简单流库。
概述
这提供了一些标准化的接口,用于提供类似流的对象。
Stream
:允许访问底层流和关闭流。Readable
:读取字节数据流。Writeable
:写入字节数据流。Seekable
:允许在流中移动指针。
这允许你精确地声明你的代码需要什么,你的流提供了什么功能,并允许编译器为我们验证这一点。进一步地,它还允许你将底层PHP流替换为更“有趣”的实现。
用法
在以下位置提供了一个基本的PHP流资源包装器
ReadStream
:支持读取的流SeekableStreamStream
:支持读取和定位的流WriteStream
:支持写入的流SeekableWriteStream
:支持写入和定位的流
这些实现不应在您的代码中进行类型提示。您应该依赖于所需的特定接口。这些类旨在提供将现有PHP流传递给使用这些接口的样板代码。
有一些便捷的方法可用
ReadStream::fromPath(string $path)
:fopen
一个路径,并返回一个ReadStream或SeekableReadStream。ReadStream::fromString(string $contents)
:在内存中打开一个缓冲区,将传递的字符串放入其中,并返回一个ReadStream或SeekableReadStream。ReadStream::fromStream($stream)
:确定传入的流是否可定位,并将其包装在ReadStream或SeekableReadStream中。WriteStream::fromPath(string $path)
:fopen
一个路径,并返回一个WriteStream或SeekableWriteStream。WriteStream::fromStream($stream)
:确定传入的流是否可定位,并将其包装在WriteStream或SeekableWriteStream中。
接口
Stream
unwrap(): resource
close(): void
Readable
read(int $bytes): string
eof(): bool
copy(Writeable $stream, ?int $length = null): void
Writeable
write(string $data): void
Seekable
offset(): int
seek(int $offset): void
length(): int
法律
版权 2024 Adam Pippin hello@adampippin.ca
根据Apache License,版本2.0(“许可证”)许可;除非遵守许可证,否则不得使用此项目。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证中规定的权限和限制的具体语言,请参阅许可证。