59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
diff --git a/src/Writer/AbstractWriter.php b/src/Writer/AbstractWriter.php
 | 
						|
index eef34fb..a22e90f 100644
 | 
						|
--- a/src/Writer/AbstractWriter.php
 | 
						|
+++ b/src/Writer/AbstractWriter.php
 | 
						|
@@ -13,6 +13,12 @@ abstract class AbstractWriter implements WriterInterface
 | 
						|
     /** @var resource Pointer to the file/stream we will write to */
 | 
						|
     protected $filePointer;
 | 
						|
 
 | 
						|
+    /**
 | 
						|
+     * @var bool faut-il garder ouvert le flux quand {@link self::close()} est
 | 
						|
+     * appelé?
 | 
						|
+     */
 | 
						|
+    protected bool $dontCloseFilePointer = false;
 | 
						|
+
 | 
						|
     /** @var string document creator */
 | 
						|
     protected string $creator = 'OpenSpout';
 | 
						|
 
 | 
						|
@@ -20,7 +26,7 @@ abstract class AbstractWriter implements WriterInterface
 | 
						|
     protected static string $headerContentType;
 | 
						|
 
 | 
						|
     /** @var string Path to the output file */
 | 
						|
-    private string $outputFilePath;
 | 
						|
+    private ?string $outputFilePath;
 | 
						|
 
 | 
						|
     /** @var bool Indicates whether the writer has been opened or not */
 | 
						|
     private bool $isWriterOpened = false;
 | 
						|
@@ -51,6 +57,20 @@ abstract class AbstractWriter implements WriterInterface
 | 
						|
         $this->isWriterOpened = true;
 | 
						|
     }
 | 
						|
 
 | 
						|
+    final public function writeToStream($filePointer): void
 | 
						|
+    {
 | 
						|
+        if (!is_resource($filePointer)) {
 | 
						|
+            throw new IOException("filePointer is not a resource");
 | 
						|
+        }
 | 
						|
+        $this->outputFilePath = null;
 | 
						|
+
 | 
						|
+        $this->filePointer = $filePointer;
 | 
						|
+        $this->dontCloseFilePointer = true;
 | 
						|
+
 | 
						|
+        $this->openWriter();
 | 
						|
+        $this->isWriterOpened = true;
 | 
						|
+    }
 | 
						|
+
 | 
						|
     /**
 | 
						|
      * @codeCoverageIgnore
 | 
						|
      *
 | 
						|
@@ -140,7 +160,9 @@ abstract class AbstractWriter implements WriterInterface
 | 
						|
 
 | 
						|
         $this->closeWriter();
 | 
						|
 
 | 
						|
-        fclose($this->filePointer);
 | 
						|
+        if (!$this->dontCloseFilePointer) {
 | 
						|
+            fclose($this->filePointer);
 | 
						|
+        }
 | 
						|
 
 | 
						|
         $this->isWriterOpened = false;
 | 
						|
     }
 |