Вход Регистрация
Файл: vendor/guzzlehttp/psr7/src/HttpFactory.php
Строк: 127
<?php

declare(strict_types=1);

namespace 
GuzzleHttpPsr7;

use 
PsrHttpMessageRequestFactoryInterface;
use 
PsrHttpMessageRequestInterface;
use 
PsrHttpMessageResponseFactoryInterface;
use 
PsrHttpMessageResponseInterface;
use 
PsrHttpMessageServerRequestFactoryInterface;
use 
PsrHttpMessageServerRequestInterface;
use 
PsrHttpMessageStreamFactoryInterface;
use 
PsrHttpMessageStreamInterface;
use 
PsrHttpMessageUploadedFileFactoryInterface;
use 
PsrHttpMessageUploadedFileInterface;
use 
PsrHttpMessageUriFactoryInterface;
use 
PsrHttpMessageUriInterface;

/**
 * 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 $filestring $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 200string $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);
    }
}
Онлайн: 0
Реклама