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
- Host: GitHub
- URL: https://github.com/struggle-for-php/sfp-diactoros-extension
- Owner: struggle-for-php
- Created: 2015-06-04T15:43:47.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-02-18T02:31:34.000Z (over 9 years ago)
- Last Synced: 2025-07-22T22:47:59.456Z (11 months ago)
- Language: PHP
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
sfp-diactoros-extension
==============
[](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));
```