File Manager Lite
Dir:
/home/codewavebd/public_html/vendor/guzzlehttp/psr7/src
Upload
[..]
AppendStream.php (7.43 KB)
Edit
Rename
Del
CachingStream.php (6.74 KB)
Edit
Rename
Del
DroppingStream.php (1.48 KB)
Edit
Rename
Del
Exception/
Rename
Del
FnStream.php (5.76 KB)
Edit
Rename
Del
Header.php (4.77 KB)
Edit
Rename
Del
InflateStream.php (1.38 KB)
Edit
Rename
Del
LazyOpenStream.php (1.06 KB)
Edit
Rename
Del
LimitStream.php (5.11 KB)
Edit
Rename
Del
Message.php (10.1 KB)
Edit
Rename
Del
MessageTrait.php (9.81 KB)
Edit
Rename
Del
MimeType.php (55.82 KB)
Edit
Rename
Del
MultipartStream.php (9.85 KB)
Edit
Rename
Del
NoSeekStream.php (1.12 KB)
Edit
Rename
Del
Request.php (4.79 KB)
Edit
Rename
Del
Response.php (5.49 KB)
Edit
Rename
Del
Rfc3986.php (490 B)
Edit
Rename
Del
Rfc7230.php (3 KB)
Edit
Rename
Del
Stream.php (8.76 KB)
Edit
Rename
Del
StreamDecoratorTrait.php (4.79 KB)
Edit
Rename
Del
StreamWrapper.php (4.68 KB)
Edit
Rename
Del
UploadedFile.php (4.98 KB)
Edit
Rename
Del
Uri.php (23.44 KB)
Edit
Rename
Del
UriComparator.php (1.24 KB)
Edit
Rename
Del
UriNormalizer.php (8.91 KB)
Edit
Rename
Del
UriResolver.php (8.15 KB)
Edit
Rename
Del
Utils.php (21.66 KB)
Edit
Rename
Del
Edit: AppendStream.php
<?php declare(strict_types=1); namespace GuzzleHttp\Psr7; use Psr\Http\Message\StreamInterface; /** * Reads from multiple streams, one after the other. * * This is a read-only stream decorator. */ final class AppendStream implements StreamInterface { /** @var StreamInterface[] Streams being decorated */ private $streams = []; /** @var bool */ private $seekable = true; /** @var int */ private $current = 0; /** @var int */ private $pos = 0; /** * @param StreamInterface[] $streams Streams to decorate. Each stream must * be readable. */ public function __construct(array $streams = []) { foreach ($streams as $stream) { $this->addStream($stream); } } public function __toString(): string { try { $this->rewind(); return $this->getContents(); } 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 ''; } } /** * Add a stream to the AppendStream * * @param StreamInterface $stream Stream to append. Must be readable. * * @throws \InvalidArgumentException if the stream is not readable */ public function addStream(StreamInterface $stream): void { if (!$stream->isReadable()) { throw new \InvalidArgumentException('Each stream must be readable'); } // The stream is only seekable if all streams are seekable if (!$stream->isSeekable()) { $this->seekable = false; } $this->streams[] = $stream; } public function getContents(): string { return Utils::copyToString($this); } /** * Closes each attached stream. */ public function close(): void { $this->pos = $this->current = 0; $this->seekable = true; foreach ($this->streams as $stream) { $stream->close(); } $this->streams = []; } /** * Detaches each attached stream. * * Returns null as it's not clear which underlying stream resource to return. */ public function detach() { $this->pos = $this->current = 0; $this->seekable = true; foreach ($this->streams as $stream) { $stream->detach(); } $this->streams = []; return null; } public function tell(): int { return $this->pos; } /** * Tries to calculate the size by adding the size of each stream. * * If any of the streams do not return a valid number, then the size of the * append stream cannot be determined and null is returned. */ public function getSize(): ?int { $size = 0; foreach ($this->streams as $stream) { $s = $stream->getSize(); if ($s === null) { return null; } $size += $s; } return $size; } public function eof(): bool { return !$this->streams || ($this->current >= count($this->streams) - 1 && $this->streams[$this->current]->eof()); } public function rewind(): void { $this->seek(0); } /** * Attempts to seek to the given position. Only supports SEEK_SET. */ public function seek($offset, $whence = SEEK_SET): void { if (!\is_int($offset)) { \trigger_deprecation( 'guzzlehttp/psr7', '2.11', 'Passing %s to StreamInterface::seek() is deprecated; guzzlehttp/psr7 3.0 requires int for $offset.', \get_debug_type($offset) ); } if (!\is_int($whence)) { \trigger_deprecation( 'guzzlehttp/psr7', '2.11', 'Passing %s to StreamInterface::seek() is deprecated; guzzlehttp/psr7 3.0 requires int for $whence.', \get_debug_type($whence) ); } if (!$this->seekable) { throw new \RuntimeException('This AppendStream is not seekable'); } elseif ($whence !== SEEK_SET) { throw new \RuntimeException('The AppendStream can only seek with SEEK_SET'); } $this->pos = $this->current = 0; // Rewind each stream foreach ($this->streams as $i => $stream) { try { $stream->rewind(); } catch (\Exception $e) { throw new \RuntimeException('Unable to seek stream ' .$i.' of the AppendStream', 0, $e); } } // Seek to the actual position by reading from each stream while ($this->pos < $offset && !$this->eof()) { $result = $this->read(min(8096, $offset - $this->pos)); if ($result === '') { break; } } } /** * Reads from all of the appended streams until the length is met or EOF. */ public function read($length): string { if (!\is_int($length)) { \trigger_deprecation( 'guzzlehttp/psr7', '2.11', 'Passing %s to StreamInterface::read() is deprecated; guzzlehttp/psr7 3.0 requires int for $length.', \get_debug_type($length) ); } if ($this->streams === []) { return ''; } $buffer = ''; $total = count($this->streams) - 1; $remaining = $length; $progressToNext = false; while ($remaining > 0) { // Progress to the next stream if needed. if ($progressToNext || $this->streams[$this->current]->eof()) { $progressToNext = false; if ($this->current === $total) { break; } ++$this->current; } $result = $this->streams[$this->current]->read($remaining); if ($result === '') { $progressToNext = true; continue; } $buffer .= $result; $remaining = $length - strlen($buffer); } $this->pos += strlen($buffer); return $buffer; } public function isReadable(): bool { return true; } public function isWritable(): bool { return false; } public function isSeekable(): bool { return $this->seekable; } public function write($string): int { if (!\is_string($string)) { \trigger_deprecation( 'guzzlehttp/psr7', '2.11', 'Passing %s to StreamInterface::write() is deprecated; guzzlehttp/psr7 3.0 requires string for $string.', \get_debug_type($string) ); } throw new \RuntimeException('Cannot write to an AppendStream'); } /** * @return mixed */ public function getMetadata($key = null) { if ($key !== null && !\is_string($key)) { \trigger_deprecation( 'guzzlehttp/psr7', '2.11', 'Passing %s to StreamInterface::getMetadata() is deprecated; guzzlehttp/psr7 3.0 requires string|null for $key.', \get_debug_type($key) ); } return $key ? null : []; } }
Simpan