Version 1
[yaffs-website] / vendor / alchemy / zippy / src / Resource / Writer / StreamWriter.php
diff --git a/vendor/alchemy/zippy/src/Resource/Writer/StreamWriter.php b/vendor/alchemy/zippy/src/Resource/Writer/StreamWriter.php
new file mode 100644 (file)
index 0000000..d5780c9
--- /dev/null
@@ -0,0 +1,27 @@
+<?php
+
+namespace Alchemy\Zippy\Resource\Writer;
+
+use Alchemy\Zippy\Resource\ResourceReader;
+use Alchemy\Zippy\Resource\ResourceWriter;
+
+class StreamWriter implements ResourceWriter
+{
+    /**
+     * @param ResourceReader $reader
+     * @param string $target
+     */
+    public function writeFromReader(ResourceReader $reader, $target)
+    {
+        $directory = dirname($target);
+        if (!is_dir($directory)) {
+            mkdir($directory, 0777, true);
+        }
+
+        $targetResource = fopen($target, 'w+');
+        $sourceResource = $reader->getContentsAsStream();
+
+        stream_copy_to_stream($sourceResource, $targetResource);
+        fclose($targetResource);
+    }
+}