$filename
$filename : string
Lazily reads or writes to a file that is opened only after an IO operation take place on the stream.
__get(string $name) : \Psr\Http\Message\StreamInterface
Magic method used to create a new stream if streams are not added in the constructor of a decorator (e.g., LazyOpenStream).
string | $name | Name of the property (allows "stream" only). |
createStream() : \Psr\Http\Message\StreamInterface
Creates the underlying stream lazily when required.
<?php
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 */
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
*/
public function __construct($filename, $mode)
{
$this->filename = $filename;
$this->mode = $mode;
}
/**
* Creates the underlying stream lazily when required.
*
* @return StreamInterface
*/
protected function createStream()
{
return stream_for(try_fopen($this->filename, $this->mode));
}
}