1 <?php
2 namespace GuzzleHttp\Stream;
3 
4 use GuzzleHttp\Stream\Exception\CannotAttachException;
5 
6 /**
7  * Does not store any data written to it.
8  */
9 class NullStream implements StreamInterface
10 {
11     public function __toString()
12     {
13         return '';
14     }
15 
16     public function getContents()
17     {
18         return '';
19     }
20 
21     public function close() {}
22 
23     public function detach() {}
24 
25     public function attach($stream)
26     {
27         throw new CannotAttachException();
28     }
29 
30     public function getSize()
31     {
32         return 0;
33     }
34 
35     public function isReadable()
36     {
37         return true;
38     }
39 
40     public function isWritable()
41     {
42         return true;
43     }
44 
45     public function isSeekable()
46     {
47         return true;
48     }
49 
50     public function eof()
51     {
52         return true;
53     }
54 
55     public function tell()
56     {
57         return 0;
58     }
59 
60     public function seek($offset, $whence = SEEK_SET)
61     {
62         return false;
63     }
64 
65     public function read($length)
66     {
67         return false;
68     }
69 
70     public function write($string)
71     {
72         return strlen($string);
73     }
74 
75     public function getMetadata($key = null)
76     {
77         return $key ? null : [];
78     }
79 }
80