PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.4
4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / vendor / guzzlehttp / psr7 / src / StreamDecoratorTrait.php
surecart / vendor / guzzlehttp / psr7 / src Last commit date
Exception 1 year ago AppendStream.php 1 year ago BufferStream.php 1 year ago CachingStream.php 1 year ago DroppingStream.php 1 year ago FnStream.php 1 year ago Header.php 1 year ago HttpFactory.php 1 year ago InflateStream.php 1 year ago LazyOpenStream.php 1 year ago LimitStream.php 1 year ago Message.php 1 year ago MessageTrait.php 1 year ago MimeType.php 1 year ago MultipartStream.php 1 year ago NoSeekStream.php 1 year ago PumpStream.php 1 year ago Query.php 1 year ago Request.php 1 year ago Response.php 1 year ago Rfc7230.php 1 year ago ServerRequest.php 1 year ago Stream.php 1 year ago StreamDecoratorTrait.php 1 year ago StreamWrapper.php 1 year ago UploadedFile.php 1 year ago Uri.php 1 year ago UriComparator.php 1 year ago UriNormalizer.php 1 year ago UriResolver.php 1 year ago Utils.php 1 year ago
StreamDecoratorTrait.php
157 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace SureCartVendors\GuzzleHttp\Psr7;
6
7 use SureCartVendors\Psr\Http\Message\StreamInterface;
8
9 /**
10 * Stream decorator trait
11 *
12 * @property StreamInterface $stream
13 */
14 trait StreamDecoratorTrait
15 {
16 /**
17 * @param StreamInterface $stream Stream to decorate
18 */
19 public function __construct(StreamInterface $stream)
20 {
21 $this->stream = $stream;
22 }
23
24 /**
25 * Magic method used to create a new stream if streams are not added in
26 * the constructor of a decorator (e.g., LazyOpenStream).
27 *
28 * @return StreamInterface
29 */
30 public function __get(string $name)
31 {
32 if ($name === 'stream') {
33 $this->stream = $this->createStream();
34
35 return $this->stream;
36 }
37
38 throw new \UnexpectedValueException("$name not found on class");
39 }
40
41 public function __toString(): string
42 {
43 try {
44 if ($this->isSeekable()) {
45 $this->seek(0);
46 }
47
48 return $this->getContents();
49 } catch (\Throwable $e) {
50 if (\PHP_VERSION_ID >= 70400) {
51 throw $e;
52 }
53 trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR);
54
55 return '';
56 }
57 }
58
59 public function getContents(): string
60 {
61 return Utils::copyToString($this);
62 }
63
64 /**
65 * Allow decorators to implement custom methods
66 *
67 * @return mixed
68 */
69 public function __call(string $method, array $args)
70 {
71 /** @var callable $callable */
72 $callable = [$this->stream, $method];
73 $result = ($callable)(...$args);
74
75 // Always return the wrapped object if the result is a return $this
76 return $result === $this->stream ? $this : $result;
77 }
78
79 public function close(): void
80 {
81 $this->stream->close();
82 }
83
84 /**
85 * @return mixed
86 */
87 public function getMetadata($key = null)
88 {
89 return $this->stream->getMetadata($key);
90 }
91
92 public function detach()
93 {
94 return $this->stream->detach();
95 }
96
97 public function getSize(): ?int
98 {
99 return $this->stream->getSize();
100 }
101
102 public function eof(): bool
103 {
104 return $this->stream->eof();
105 }
106
107 public function tell(): int
108 {
109 return $this->stream->tell();
110 }
111
112 public function isReadable(): bool
113 {
114 return $this->stream->isReadable();
115 }
116
117 public function isWritable(): bool
118 {
119 return $this->stream->isWritable();
120 }
121
122 public function isSeekable(): bool
123 {
124 return $this->stream->isSeekable();
125 }
126
127 public function rewind(): void
128 {
129 $this->seek(0);
130 }
131
132 public function seek($offset, $whence = SEEK_SET): void
133 {
134 $this->stream->seek($offset, $whence);
135 }
136
137 public function read($length): string
138 {
139 return $this->stream->read($length);
140 }
141
142 public function write($string): int
143 {
144 return $this->stream->write($string);
145 }
146
147 /**
148 * Implement in subclasses to dynamically create streams when requested.
149 *
150 * @throws \BadMethodCallException
151 */
152 protected function createStream(): StreamInterface
153 {
154 throw new \BadMethodCallException('Not implemented');
155 }
156 }
157