D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
modules
/
grafana
/
vendor
/
laminas
/
laminas-diactoros
/
src
/
Filename :
ServerRequestFactory.php
back
Copy
<?php declare (strict_types=1); namespace PleskGrafana\Laminas\Diactoros; use PleskGrafana\Laminas\Diactoros\ServerRequestFilter\FilterServerRequestInterface; use PleskGrafana\Laminas\Diactoros\ServerRequestFilter\FilterUsingXForwardedHeaders; use Psr\Http\Message\ServerRequestFactoryInterface; use Psr\Http\Message\ServerRequestInterface; use function array_key_exists; use function is_callable; /** * Class for marshaling a request object from the current PHP environment. */ class ServerRequestFactory implements ServerRequestFactoryInterface { /** * Function to use to get apache request headers; present only to simplify mocking. * * @var callable|string */ private static $apacheRequestHeaders = 'apache_request_headers'; /** * Create a request from the supplied superglobal values. * * If any argument is not supplied, the corresponding superglobal value will * be used. * * The ServerRequest created is then passed to the fromServer() method in * order to marshal the request URI and headers. * * @see fromServer() * * @param null|array $server $_SERVER superglobal * @param null|array $query $_GET superglobal * @param null|array $body $_POST superglobal * @param null|array $cookies $_COOKIE superglobal * @param null|array $files $_FILES superglobal * @param null|FilterServerRequestInterface $requestFilter If present, the * generated request will be passed to this instance and the result * returned by this method. When not present, a default instance of * FilterUsingXForwardedHeaders is created, using the `trustReservedSubnets()` * constructor. */ public static function fromGlobals(?array $server = null, ?array $query = null, ?array $body = null, ?array $cookies = null, ?array $files = null, ?FilterServerRequestInterface $requestFilter = null) : ServerRequestInterface { $requestFilter = $requestFilter ?? FilterUsingXForwardedHeaders::trustReservedSubnets(); $server = normalizeServer($server ?? $_SERVER, is_callable(self::$apacheRequestHeaders) ? self::$apacheRequestHeaders : null); $files = normalizeUploadedFiles($files ?? $_FILES); $headers = marshalHeadersFromSapi($server); if (null === $cookies && array_key_exists('cookie', $headers)) { $cookies = parseCookieHeader($headers['cookie']); } return $requestFilter(new ServerRequest($server, $files, UriFactory::createFromSapi($server, $headers), marshalMethodFromSapi($server), 'php://input', $headers, $cookies ?? $_COOKIE, $query ?? $_GET, $body ?? $_POST, marshalProtocolVersionFromSapi($server))); } /** * {@inheritDoc} */ public function createServerRequest(string $method, $uri, array $serverParams = []) : ServerRequestInterface { $uploadedFiles = []; return new ServerRequest($serverParams, $uploadedFiles, $uri, $method, 'php://temp'); } }