Mercurial > hg > isophonics-drupal-site
comparison vendor/guzzlehttp/psr7/src/LazyOpenStream.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 namespace GuzzleHttp\Psr7; | |
3 | |
4 use Psr\Http\Message\StreamInterface; | |
5 | |
6 /** | |
7 * Lazily reads or writes to a file that is opened only after an IO operation | |
8 * take place on the stream. | |
9 */ | |
10 class LazyOpenStream implements StreamInterface | |
11 { | |
12 use StreamDecoratorTrait; | |
13 | |
14 /** @var string File to open */ | |
15 private $filename; | |
16 | |
17 /** @var string $mode */ | |
18 private $mode; | |
19 | |
20 /** | |
21 * @param string $filename File to lazily open | |
22 * @param string $mode fopen mode to use when opening the stream | |
23 */ | |
24 public function __construct($filename, $mode) | |
25 { | |
26 $this->filename = $filename; | |
27 $this->mode = $mode; | |
28 } | |
29 | |
30 /** | |
31 * Creates the underlying stream lazily when required. | |
32 * | |
33 * @return StreamInterface | |
34 */ | |
35 protected function createStream() | |
36 { | |
37 return stream_for(try_fopen($this->filename, $this->mode)); | |
38 } | |
39 } |