Chris@0: reachedEof) { Chris@0: return $this->cache; Chris@0: } Chris@0: Chris@0: $this->getContents(); Chris@0: return $this->cache; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function isWritable() Chris@0: { Chris@0: return false; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function read($length) Chris@0: { Chris@0: $content = parent::read($length); Chris@0: if (! $this->reachedEof) { Chris@0: $this->cache .= $content; Chris@0: } Chris@0: Chris@0: if ($this->eof()) { Chris@0: $this->reachedEof = true; Chris@0: } Chris@0: Chris@0: return $content; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getContents($maxLength = -1) Chris@0: { Chris@0: if ($this->reachedEof) { Chris@0: return $this->cache; Chris@0: } Chris@0: Chris@0: $contents = stream_get_contents($this->resource, $maxLength); Chris@0: $this->cache .= $contents; Chris@0: Chris@0: if ($maxLength === -1 || $this->eof()) { Chris@0: $this->reachedEof = true; Chris@0: } Chris@0: Chris@0: return $contents; Chris@0: } Chris@0: }