# PHP пакет для управления HTTP-потока и базового HTTP-сообщения

Пакет HttpSoft\Stream реализует Psr\Http\Message\StreamInterface и Psr\Http\Message\MessageInterface в соответствии со спецификациями RFC 7230 и RFC 7231.

HTTP-поток и HTTP-сообщение являются базовыми компонентами для реализации HTTP-запросов и HTTP-ответов. Самостоятельно эти компоненты используются редко, но данный пакет дает такую возможность.

Для этого пакета требуется PHP версии 7.4 или более поздней.

Установка пакета:

composer require httpsoft/http-stream

Исходный код на GitHub

# API

# Использование

use HttpSoft\Stream\Stream;
use HttpSoft\Stream\StreamFactory;

$stream = new Stream('php://temp', 'wb+');
// эквивалентно:
$stream = StreamFactory::create('php://temp', 'wb+');

$stream->getMetadata('uri'); // 'php://temp'
$stream->getMetadata('mode'); // 'w+b'
$stream->getContents(); // ''

$stream->isReadable(); // true
$stream->isSeekable(); // true
$stream->isWritable(); // true

$stream->write('content');
$stream->__toString(); // 'content'
// эквивалентно:
(string) $stream; // echo $stream;

$stream->close();
$stream->isReadable(); // false
$stream->isSeekable(); // false
$stream->isWritable(); // false

Подробное описание использования HttpSoft\Stream\Stream смотрите здесь.

use HttpSoft\Stream\StreamFactory;
use HttpSoft\Stream\StreamPhpInput;

$stream = new StreamPhpInput();
// эквивалентно:
$stream = StreamFactory::create('php://input');

$stream->getMetadata('uri'); // 'php://input'
$stream->getMetadata('mode'); // 'rb'
$stream->getContents(); // ''

$stream->isReadable(); // true
$stream->isSeekable(); // true
$stream->isWritable(); // false

$stream = new StreamPhpInput('path/to/file');
$stream->read(1); // 'c'
$stream->getContents(); // 'ontent'
(string) $stream; // 'content'

Подробное описание использования HttpSoft\Stream\StreamPhpInput смотрите здесь.