summaryrefslogtreecommitdiff
path: root/inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php')
-rw-r--r--inc/mailgun/php-http/message/src/StreamFactory/DiactorosStreamFactory.php36
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;
+ }
+}