diff options
Diffstat (limited to 'inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php')
| -rw-r--r-- | inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php b/inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php new file mode 100644 index 0000000..a75ec98 --- /dev/null +++ b/inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php @@ -0,0 +1,36 @@ +<?php + +namespace Http\Message\StreamFactory; + +use Http\Message\StreamFactory; +use Psr\Http\Message\StreamInterface; +use Zend\Diactoros\Stream; + +/** + * Creates Diactoros streams. + * + * @author Михаил Красильников <m.krasilnikov@yandex.ru> + */ +final class DiactorosStreamFactory implements StreamFactory +{ + /** + * {@inheritdoc} + */ + public function createStream($body = null) + { + if ($body instanceof StreamInterface) { + return $body; + } + + if (is_resource($body)) { + return new Stream($body); + } + + $stream = new Stream('php://memory', 'rw'); + if (null !== $body && '' !== $body) { + $stream->write((string) $body); + } + + return $stream; + } +} |
