mpyw/stream-interface-resource

此包已被废弃,不再维护。作者建议使用guzzlehttp/psr7包。

从PSR-7 StreamInterface实现创建资源流

v1.0.3 2021-06-27 13:02 UTC

This package is auto-updated.

Last update: 2021-11-26 15:24:55 UTC


README

已弃用:此包已被废弃。请使用guzzlehttp/psr7内置方法。

<?php

use GuzzleHttp\Psr7\StreamWrapper;
use GuzzleHttp\Psr7\Utils;

$fp = StreamWrapper::getResource(Utils::streamFor("a\nbcd\n"));

Stream Interface Resource 构建状态 覆盖率状态 Scrutinizer代码质量

从PSR-7 StreamInterface实现创建资源流。

要求

安装

composer require mpyw/stream-interface-resource

使用方法

StreamInterface

<?php

use Mpyw\StreamInterfaceResource\StreamInterfaceResource;
use GuzzleHttp\Psr7\Utils;

$fp = StreamInterfaceResource::open(Utils::streamFor("a\nbcd\n"));

var_dump(fgets($fp)); // "a\n"
var_dump(feof($fp)); // false

var_dump(fgets($fp)); // "bcd\n"
var_dump(feof($fp)); // false (PHP ~7.1), true (PHP ^7.2)

var_dump(fgets($fp)); // false
var_dump(feof($fp)); // true

从字符串

StreamInterfaceResource::open("a\nbcd\n")

从迭代器

StreamInterfaceResource::open(new ArrayIterator(["a\n", "b\n", "c\n"]))

从生成器

StreamInterfaceResource::open((function () {
    for ($i = 0; true; ++$i) {
        yield "$i\n";
    }
})())

支持的运算

  • fclose
  • feof
  • fgets
  • fread
  • fseek
  • ftell
  • fwrite
  • rewind
  • stream_get_contents
  • stream_copy_to_stream