An open API service indexing awesome lists of open source software.

https://github.com/struggle-for-php/sfp-diactoros-extension

:dizzy: extension for zend-diactoros
https://github.com/struggle-for-php/sfp-diactoros-extension

Last synced: 6 months ago
JSON representation

:dizzy: extension for zend-diactoros

Awesome Lists containing this project

README

          

sfp-diactoros-extension
==============

[![Build Status](https://travis-ci.org/struggle-for-php/sfp-diactoros-extension.png?branch=master)](https://travis-ci.org/struggle-for-php/sfp-diactoros-extension)

A extension for zend-diactoros.

## Feature

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

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

```php
// SapiEmitter
echo $response->getBody();
```

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

## Usage

```php
use SfpDiactoros\Response\SwitchingEmitter;

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

```

```php
use SfpDiactoros\Stream\RewindFpassthruStream;

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

```