namespace GuzzleHttp\Psr7;
use Psr\Http\Message\StreamInterface;
* Lazily reads or writes to a file that is opened only after an IO operation
* take place on the stream.
class LazyOpenStream implements StreamInterface
use StreamDecoratorTrait;
/** @var string File to open */
* @param string $filename File to lazily open
* @param string $mode fopen mode to use when opening the stream
public function __construct($filename, $mode)
$this->filename = $filename;
* Creates the underlying stream lazily when required.
* @return StreamInterface
protected function createStream()
return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode));