Mercurial > hg > cmmr2012-drupal-site
diff vendor/zendframework/zend-diactoros/src/Response/SapiEmitter.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | 5311817fb629 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/zendframework/zend-diactoros/src/Response/SapiEmitter.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,51 @@ +<?php +/** + * Zend Framework (http://framework.zend.com/) + * + * @see http://github.com/zendframework/zend-diactoros for the canonical source repository + * @copyright Copyright (c) 2015-2016 Zend Technologies USA Inc. (http://www.zend.com) + * @license https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License + */ + +namespace Zend\Diactoros\Response; + +use Psr\Http\Message\ResponseInterface; +use RuntimeException; + +class SapiEmitter implements EmitterInterface +{ + use SapiEmitterTrait; + + /** + * Emits a response for a PHP SAPI environment. + * + * Emits the status line and headers via the header() function, and the + * body content via the output buffer. + * + * @param ResponseInterface $response + * @param null|int $maxBufferLevel Maximum output buffering level to unwrap. + */ + public function emit(ResponseInterface $response, $maxBufferLevel = null) + { + if (headers_sent()) { + throw new RuntimeException('Unable to emit response; headers already sent'); + } + + $response = $this->injectContentLength($response); + + $this->emitStatusLine($response); + $this->emitHeaders($response); + $this->flush($maxBufferLevel); + $this->emitBody($response); + } + + /** + * Emit the message body. + * + * @param ResponseInterface $response + */ + private function emitBody(ResponseInterface $response) + { + echo $response->getBody(); + } +}