<?phpnamespaceGuzzleHttp\Psr7;usePsr\Http\Message\StreamInterface;/** * Lazily reads or writes to a file that is opened only after an IO operation * take place on the stream. */classLazyOpenStreamimplementsStreamInterface{useStreamDecoratorTrait;/** @var string File to open */private$filename;/** @var string $mode */private$mode;/** * @param string $filename File to lazily open * @param string $mode fopen mode to use when opening the stream */publicfunction__construct($filename,$mode){$this->filename=$filename;$this->mode=$mode;}/** * Creates the underlying stream lazily when required. * * @return StreamInterface */protectedfunctioncreateStream(){returnstream_for(try_fopen($this->filename,$this->mode));}}