[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace Nyholm\Psr7\Factory; 6 7 use Nyholm\Psr7\{Request, Response, ServerRequest, Stream, UploadedFile, Uri}; 8 use Psr\Http\Message\{RequestFactoryInterface, RequestInterface, ResponseFactoryInterface, ResponseInterface, ServerRequestFactoryInterface, ServerRequestInterface, StreamFactoryInterface, StreamInterface, UploadedFileFactoryInterface, UploadedFileInterface, UriFactoryInterface, UriInterface}; 9 10 /** 11 * @author Tobias Nyholm <[email protected]> 12 * @author Martijn van der Ven <[email protected]> 13 * 14 * @final This class should never be extended. See https://github.com/Nyholm/psr7/blob/master/doc/final.md 15 */ 16 class Psr17Factory implements RequestFactoryInterface, ResponseFactoryInterface, ServerRequestFactoryInterface, StreamFactoryInterface, UploadedFileFactoryInterface, UriFactoryInterface 17 { 18 public function createRequest(string $method, $uri): RequestInterface 19 { 20 return new Request($method, $uri); 21 } 22 23 public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface 24 { 25 if (2 > \func_num_args()) { 26 // This will make the Response class to use a custom reasonPhrase 27 $reasonPhrase = null; 28 } 29 30 return new Response($code, [], null, '1.1', $reasonPhrase); 31 } 32 33 public function createStream(string $content = ''): StreamInterface 34 { 35 return Stream::create($content); 36 } 37 38 public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface 39 { 40 if ('' === $filename) { 41 throw new \RuntimeException('Path cannot be empty'); 42 } 43 44 if (false === $resource = @\fopen($filename, $mode)) { 45 if ('' === $mode || false === \in_array($mode[0], ['r', 'w', 'a', 'x', 'c'], true)) { 46 throw new \InvalidArgumentException(\sprintf('The mode "%s" is invalid.', $mode)); 47 } 48 49 throw new \RuntimeException(\sprintf('The file "%s" cannot be opened: %s', $filename, \error_get_last()['message'] ?? '')); 50 } 51 52 return Stream::create($resource); 53 } 54 55 public function createStreamFromResource($resource): StreamInterface 56 { 57 return Stream::create($resource); 58 } 59 60 public function createUploadedFile(StreamInterface $stream, int $size = null, int $error = \UPLOAD_ERR_OK, string $clientFilename = null, string $clientMediaType = null): UploadedFileInterface 61 { 62 if (null === $size) { 63 $size = $stream->getSize(); 64 } 65 66 return new UploadedFile($stream, $size, $error, $clientFilename, $clientMediaType); 67 } 68 69 public function createUri(string $uri = ''): UriInterface 70 { 71 return new Uri($uri); 72 } 73 74 public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface 75 { 76 return new ServerRequest($method, $uri, [], null, '1.1', $serverParams); 77 } 78 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |