12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- declare(strict_types=1);
- namespace GuzzleHttp\Psr7;
- use Psr\Http\Message\RequestFactoryInterface;
- use Psr\Http\Message\RequestInterface;
- use Psr\Http\Message\ResponseFactoryInterface;
- use Psr\Http\Message\ResponseInterface;
- use Psr\Http\Message\ServerRequestFactoryInterface;
- use Psr\Http\Message\ServerRequestInterface;
- use Psr\Http\Message\StreamFactoryInterface;
- use Psr\Http\Message\StreamInterface;
- use Psr\Http\Message\UploadedFileFactoryInterface;
- use Psr\Http\Message\UploadedFileInterface;
- use Psr\Http\Message\UriFactoryInterface;
- use Psr\Http\Message\UriInterface;
- /**
- * Implements all of the PSR-17 interfaces.
- *
- * Note: in consuming code it is recommended to require the implemented interfaces
- * and inject the instance of this class multiple times.
- */
- final class HttpFactory implements RequestFactoryInterface, ResponseFactoryInterface, ServerRequestFactoryInterface, StreamFactoryInterface, UploadedFileFactoryInterface, UriFactoryInterface
- {
- public function createUploadedFile(
- StreamInterface $stream,
- int $size = null,
- int $error = \UPLOAD_ERR_OK,
- string $clientFilename = null,
- string $clientMediaType = null
- ): UploadedFileInterface {
- if ($size === null) {
- $size = $stream->getSize();
- }
- return new UploadedFile($stream, $size, $error, $clientFilename, $clientMediaType);
- }
- public function createStream(string $content = ''): StreamInterface
- {
- return Utils::streamFor($content);
- }
- public function createStreamFromFile(string $file, string $mode = 'r'): StreamInterface
- {
- try {
- $resource = Utils::tryFopen($file, $mode);
- } catch (\RuntimeException $e) {
- if ('' === $mode || false === \in_array($mode[0], ['r', 'w', 'a', 'x', 'c'], true)) {
- throw new \InvalidArgumentException(sprintf('Invalid file opening mode "%s"', $mode), 0, $e);
- }
- throw $e;
- }
- return Utils::streamFor($resource);
- }
- public function createStreamFromResource($resource): StreamInterface
- {
- return Utils::streamFor($resource);
- }
- public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface
- {
- if (empty($method)) {
- if (!empty($serverParams['REQUEST_METHOD'])) {
- $method = $serverParams['REQUEST_METHOD'];
- } else {
- throw new \InvalidArgumentException('Cannot determine HTTP method');
- }
- }
- return new ServerRequest($method, $uri, [], null, '1.1', $serverParams);
- }
- public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface
- {
- return new Response($code, [], null, '1.1', $reasonPhrase);
- }
- public function createRequest(string $method, $uri): RequestInterface
- {
- return new Request($method, $uri);
- }
- public function createUri(string $uri = ''): UriInterface
- {
- return new Uri($uri);
- }
- }
|