ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
StreamDecoratorTrait.php
Go to the documentation of this file.
1 <?php
2 namespace GuzzleHttp\Psr7;
3 
5 
11 {
15  public function __construct(StreamInterface $stream)
16  {
17  $this->stream = $stream;
18  }
19 
28  public function __get($name)
29  {
30  if ($name == 'stream') {
31  $this->stream = $this->createStream();
32  return $this->stream;
33  }
34 
35  throw new \UnexpectedValueException("$name not found on class");
36  }
37 
38  public function __toString()
39  {
40  try {
41  if ($this->isSeekable()) {
42  $this->seek(0);
43  }
44  return $this->getContents();
45  } catch (\Exception $e) {
46  // Really, PHP? https://bugs.php.net/bug.php?id=53648
47  trigger_error('StreamDecorator::__toString exception: '
48  . (string) $e, E_USER_ERROR);
49  return '';
50  }
51  }
52 
53  public function getContents()
54  {
55  return copy_to_string($this);
56  }
57 
66  public function __call($method, array $args)
67  {
68  $result = call_user_func_array([$this->stream, $method], $args);
69 
70  // Always return the wrapped object if the result is a return $this
71  return $result === $this->stream ? $this : $result;
72  }
73 
74  public function close()
75  {
76  $this->stream->close();
77  }
78 
79  public function getMetadata($key = null)
80  {
81  return $this->stream->getMetadata($key);
82  }
83 
84  public function detach()
85  {
86  return $this->stream->detach();
87  }
88 
89  public function getSize()
90  {
91  return $this->stream->getSize();
92  }
93 
94  public function eof()
95  {
96  return $this->stream->eof();
97  }
98 
99  public function tell()
100  {
101  return $this->stream->tell();
102  }
103 
104  public function isReadable()
105  {
106  return $this->stream->isReadable();
107  }
108 
109  public function isWritable()
110  {
111  return $this->stream->isWritable();
112  }
113 
114  public function isSeekable()
115  {
116  return $this->stream->isSeekable();
117  }
118 
119  public function rewind()
120  {
121  $this->seek(0);
122  }
123 
124  public function seek($offset, $whence = SEEK_SET)
125  {
126  $this->stream->seek($offset, $whence);
127  }
128 
129  public function read($length)
130  {
131  return $this->stream->read($length);
132  }
133 
134  public function write($string)
135  {
136  return $this->stream->write($string);
137  }
138 
145  protected function createStream()
146  {
147  throw new \BadMethodCallException('Not implemented');
148  }
149 }
$result
__call($method, array $arguments)
Plugins pass-through.
$stream
PHP stream implementation.
if($format !==null) $name
Definition: metadata.php:146
Create styles array
The data for the language used.
copy_to_string(StreamInterface $stream, $maxLen=-1)
Copy the contents of a stream into a string until the given number of bytes have been read...
Definition: functions.php:328
$key
Definition: croninfo.php:18