1 <?php 2 3 declare(strict_types=1); 4 5 namespace GuzzleHttp\Psr7; 6 7 use Psr\Http\Message\StreamInterface; 8 9 /** 10 * Lazily reads or writes to a file that is opened only after an IO operation 11 * take place on the stream. 12 */ 13 #[\AllowDynamicProperties] 14 final class LazyOpenStream implements StreamInterface 15 { 16 use StreamDecoratorTrait; 17 18 /** @var string */ 19 private $filename; 20 21 /** @var string */ 22 private $mode; 23 24 /** 25 * @param string $filename File to lazily open 26 * @param string $mode fopen mode to use when opening the stream 27 */ 28 public function __construct(string $filename, string $mode) 29 { 30 $this->filename = $filename; 31 $this->mode = $mode; 32 } 33 34 /** 35 * Creates the underlying stream lazily when required. 36 */ 37 protected function createStream(): StreamInterface 38 { 39 return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode)); 40 } 41 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body