struggle-for-php/sfp-diactoros-extension

An extension for zend-diactoros.

Installs: 16

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 1

Open Issues: 1

pkg:composer/struggle-for-php/sfp-diactoros-extension

0.1.0 2015-06-05 15:58 UTC

This package is auto-updated.

Last update: 2025-10-06 18:01:49 UTC


README

Build Status

A extension for zend-diactoros.

Feature

SfpDiactoros\Response\SwitchingEmitter allows fpassthru() with FpassthruInterface.

just changed only in emitBody() from original Zend\Diactoros\Response\SapiEmitter.

// SapiEmitter
echo $response->getBody();
// SwitchingEmitter
if ($body instanceof FpassthruInterface) {
    $resource = $body->detach();
    if ($body instanceof RewindFpassthruInterface) {
        rewind($resource);
    }
    fpassthru($resource);
} else {
    echo $response->getBody();
}

Usage

use SfpDiactoros\Response\SwitchingEmitter;

$server = Server::createServer($app, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES);
$server->setEmitter(new SwitchingEmitter);
use SfpDiactoros\Stream\RewindFpassthruStream;

$fp = fopen('/tmp/bigsize', 'r');
$response->withBody(new RewindFpassthruStream($fp));