Mercurial > hg > cmmr2012-drupal-site
diff vendor/zendframework/zend-diactoros/src/Response/TextResponse.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/TextResponse.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,74 @@ +<?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 InvalidArgumentException; +use Psr\Http\Message\StreamInterface; +use Zend\Diactoros\Response; +use Zend\Diactoros\Stream; + +/** + * Plain text response. + * + * Allows creating a response by passing a string to the constructor; + * by default, sets a status code of 200 and sets the Content-Type header to + * text/plain. + */ +class TextResponse extends Response +{ + use InjectContentTypeTrait; + + /** + * Create a plain text response. + * + * Produces a text response with a Content-Type of text/plain and a default + * status of 200. + * + * @param string|StreamInterface $text String or stream for the message body. + * @param int $status Integer status code for the response; 200 by default. + * @param array $headers Array of headers to use at initialization. + * @throws InvalidArgumentException if $text is neither a string or stream. + */ + public function __construct($text, $status = 200, array $headers = []) + { + parent::__construct( + $this->createBody($text), + $status, + $this->injectContentType('text/plain; charset=utf-8', $headers) + ); + } + + /** + * Create the message body. + * + * @param string|StreamInterface $text + * @return StreamInterface + * @throws InvalidArgumentException if $html is neither a string or stream. + */ + private function createBody($text) + { + if ($text instanceof StreamInterface) { + return $text; + } + + if (! is_string($text)) { + throw new InvalidArgumentException(sprintf( + 'Invalid content (%s) provided to %s', + (is_object($text) ? get_class($text) : gettype($text)), + __CLASS__ + )); + } + + $body = new Stream('php://temp', 'wb+'); + $body->write($text); + $body->rewind(); + return $body; + } +}