PluginProbe
Depicter — Popup & Slider Builder / trunk
Depicter — Popup & Slider Builder vtrunk
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / modules / GuzzleHttp / Psr7 / HttpFactory.php

HttpFactory.php in Depicter — Popup & Slider Builder trunk, at modules/GuzzleHttp/Psr7/HttpFactory.php

95 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Depicter\GuzzleHttp\Psr7;
6
7 use Depicter\Psr\Http\Message\RequestFactoryInterface;
8 use Depicter\Psr\Http\Message\RequestInterface;
9 use Depicter\Psr\Http\Message\ResponseFactoryInterface;
10 use Depicter\Psr\Http\Message\ResponseInterface;
11 use Depicter\Psr\Http\Message\ServerRequestFactoryInterface;
12 use Depicter\Psr\Http\Message\ServerRequestInterface;
13 use Depicter\Psr\Http\Message\StreamFactoryInterface;
14 use Depicter\Psr\Http\Message\StreamInterface;
15 use Depicter\Psr\Http\Message\UploadedFileFactoryInterface;
16 use Depicter\Psr\Http\Message\UploadedFileInterface;
17 use Depicter\Psr\Http\Message\UriFactoryInterface;
18 use Depicter\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 }
95