Browse code

added appinfo/info.xml appinfo/signature.json CHANGELOG.txt lib/AppInfo/Application.php css/style.css providers/Plivo

DoubleBastionAdmin authored on 05/11/2025 13:35:09
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,94 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+namespace GuzzleHttp\Psr7;
6
+
7
+use Psr\Http\Message\RequestFactoryInterface;
8
+use Psr\Http\Message\RequestInterface;
9
+use Psr\Http\Message\ResponseFactoryInterface;
10
+use Psr\Http\Message\ResponseInterface;
11
+use Psr\Http\Message\ServerRequestFactoryInterface;
12
+use Psr\Http\Message\ServerRequestInterface;
13
+use Psr\Http\Message\StreamFactoryInterface;
14
+use Psr\Http\Message\StreamInterface;
15
+use Psr\Http\Message\UploadedFileFactoryInterface;
16
+use Psr\Http\Message\UploadedFileInterface;
17
+use Psr\Http\Message\UriFactoryInterface;
18
+use Psr\Http\Message\UriInterface;
19
+
20
+/**
21
+ * Implements all of the PSR-17 interfaces.
22
+ *
23
+ * Note: in consuming code it is recommended to require the implemented interfaces
24
+ * and inject the instance of this class multiple times.
25
+ */
26
+final class HttpFactory implements RequestFactoryInterface, ResponseFactoryInterface, ServerRequestFactoryInterface, StreamFactoryInterface, UploadedFileFactoryInterface, UriFactoryInterface
27
+{
28
+    public function createUploadedFile(
29
+        StreamInterface $stream,
30
+        ?int $size = null,
31
+        int $error = \UPLOAD_ERR_OK,
32
+        ?string $clientFilename = null,
33
+        ?string $clientMediaType = null
34
+    ): UploadedFileInterface {
35
+        if ($size === null) {
36
+            $size = $stream->getSize();
37
+        }
38
+
39
+        return new UploadedFile($stream, $size, $error, $clientFilename, $clientMediaType);
40
+    }
41
+
42
+    public function createStream(string $content = ''): StreamInterface
43
+    {
44
+        return Utils::streamFor($content);
45
+    }
46
+
47
+    public function createStreamFromFile(string $file, string $mode = 'r'): StreamInterface
48
+    {
49
+        try {
50
+            $resource = Utils::tryFopen($file, $mode);
51
+        } catch (\RuntimeException $e) {
52
+            if ('' === $mode || false === \in_array($mode[0], ['r', 'w', 'a', 'x', 'c'], true)) {
53
+                throw new \InvalidArgumentException(sprintf('Invalid file opening mode "%s"', $mode), 0, $e);
54
+            }
55
+
56
+            throw $e;
57
+        }
58
+
59
+        return Utils::streamFor($resource);
60
+    }
61
+
62
+    public function createStreamFromResource($resource): StreamInterface
63
+    {
64
+        return Utils::streamFor($resource);
65
+    }
66
+
67
+    public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface
68
+    {
69
+        if (empty($method)) {
70
+            if (!empty($serverParams['REQUEST_METHOD'])) {
71
+                $method = $serverParams['REQUEST_METHOD'];
72
+            } else {
73
+                throw new \InvalidArgumentException('Cannot determine HTTP method');
74
+            }
75
+        }
76
+
77
+        return new ServerRequest($method, $uri, [], null, '1.1', $serverParams);
78
+    }
79
+
80
+    public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface
81
+    {
82
+        return new Response($code, [], null, '1.1', $reasonPhrase);
83
+    }
84
+
85
+    public function createRequest(string $method, $uri): RequestInterface
86
+    {
87
+        return new Request($method, $uri);
88
+    }
89
+
90
+    public function createUri(string $uri = ''): UriInterface
91
+    {
92
+        return new Uri($uri);
93
+    }
94
+}