Skip to content
This repository has been archived by the owner on Nov 26, 2021. It is now read-only.

Create resource stream from PSR-7 StreamInterface implementation

License

Notifications You must be signed in to change notification settings

mpyw-junks/stream-interface-resource

Repository files navigation

DEPRECATED: This package has been abandoned. Use guzzlehttp/psr7 bulit-in methods instead.

<?php

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

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

Stream Interface Resource Build Status Coverage Status Scrutinizer Code Quality

Create resource stream from PSR-7 StreamInterface implementation.

Requirements

Installing

composer require mpyw/stream-interface-resource

Usage

From 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

From String

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

From Iterator

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

From Generator

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

Supported Operations

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