Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/3rdparty.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'guzzlehttp/psr7/src/StreamDecoratorTrait.php')
-rw-r--r--guzzlehttp/psr7/src/StreamDecoratorTrait.php63
1 files changed, 33 insertions, 30 deletions
diff --git a/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/guzzlehttp/psr7/src/StreamDecoratorTrait.php
index 5025dd67..56d4104d 100644
--- a/guzzlehttp/psr7/src/StreamDecoratorTrait.php
+++ b/guzzlehttp/psr7/src/StreamDecoratorTrait.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
namespace GuzzleHttp\Psr7;
use Psr\Http\Message\StreamInterface;
@@ -7,7 +9,7 @@ use Psr\Http\Message\StreamInterface;
/**
* Stream decorator trait
*
- * @property StreamInterface stream
+ * @property StreamInterface $stream
*/
trait StreamDecoratorTrait
{
@@ -23,13 +25,11 @@ trait StreamDecoratorTrait
* Magic method used to create a new stream if streams are not added in
* the constructor of a decorator (e.g., LazyOpenStream).
*
- * @param string $name Name of the property (allows "stream" only).
- *
* @return StreamInterface
*/
- public function __get($name)
+ public function __get(string $name)
{
- if ($name == 'stream') {
+ if ($name === 'stream') {
$this->stream = $this->createStream();
return $this->stream;
}
@@ -37,22 +37,23 @@ trait StreamDecoratorTrait
throw new \UnexpectedValueException("$name not found on class");
}
- public function __toString()
+ public function __toString(): string
{
try {
if ($this->isSeekable()) {
$this->seek(0);
}
return $this->getContents();
- } catch (\Exception $e) {
- // Really, PHP? https://bugs.php.net/bug.php?id=53648
- trigger_error('StreamDecorator::__toString exception: '
- . (string) $e, E_USER_ERROR);
+ } catch (\Throwable $e) {
+ if (\PHP_VERSION_ID >= 70400) {
+ throw $e;
+ }
+ trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR);
return '';
}
}
- public function getContents()
+ public function getContents(): string
{
return Utils::copyToString($this);
}
@@ -60,24 +61,28 @@ trait StreamDecoratorTrait
/**
* Allow decorators to implement custom methods
*
- * @param string $method Missing method name
- * @param array $args Method arguments
- *
* @return mixed
*/
- public function __call($method, array $args)
+ public function __call(string $method, array $args)
{
- $result = call_user_func_array([$this->stream, $method], $args);
+ /** @var callable $callable */
+ $callable = [$this->stream, $method];
+ $result = call_user_func_array($callable, $args);
// Always return the wrapped object if the result is a return $this
return $result === $this->stream ? $this : $result;
}
- public function close()
+ public function close(): void
{
$this->stream->close();
}
+ /**
+ * {@inheritdoc}
+ *
+ * @return mixed
+ */
public function getMetadata($key = null)
{
return $this->stream->getMetadata($key);
@@ -88,52 +93,52 @@ trait StreamDecoratorTrait
return $this->stream->detach();
}
- public function getSize()
+ public function getSize(): ?int
{
return $this->stream->getSize();
}
- public function eof()
+ public function eof(): bool
{
return $this->stream->eof();
}
- public function tell()
+ public function tell(): int
{
return $this->stream->tell();
}
- public function isReadable()
+ public function isReadable(): bool
{
return $this->stream->isReadable();
}
- public function isWritable()
+ public function isWritable(): bool
{
return $this->stream->isWritable();
}
- public function isSeekable()
+ public function isSeekable(): bool
{
return $this->stream->isSeekable();
}
- public function rewind()
+ public function rewind(): void
{
$this->seek(0);
}
- public function seek($offset, $whence = SEEK_SET)
+ public function seek($offset, $whence = SEEK_SET): void
{
$this->stream->seek($offset, $whence);
}
- public function read($length)
+ public function read($length): string
{
return $this->stream->read($length);
}
- public function write($string)
+ public function write($string): int
{
return $this->stream->write($string);
}
@@ -141,11 +146,9 @@ trait StreamDecoratorTrait
/**
* Implement in subclasses to dynamically create streams when requested.
*
- * @return StreamInterface
- *
* @throws \BadMethodCallException
*/
- protected function createStream()
+ protected function createStream(): StreamInterface
{
throw new \BadMethodCallException('Not implemented');
}