# Класс HttpSoft\ServerRequest\ServerRequestCreator
Фабрика для создания HttpSoft\Message\ServerRequest.
use HttpSoft\ServerRequest\ServerRequestCreator;
// Экземпляр `HttpSoft\Message\ServerRequest` с пустыми данными:
$request = ServerRequestCreator::createFromGlobals([], [], [], [], []);
// Экземпляр `HttpSoft\Message\ServerRequest` с данными, взятыми из суперглобальных массивов:
$request = ServerRequestCreator::createFromGlobals($_SERVER, $_FILES, $_COOKIE, $_GET, $_POST);
// эквивалентно:
$request = ServerRequestCreator::createFromGlobals(null, null, null, null, null);
// эквивалентно:
$request = ServerRequestCreator::createFromGlobals();
// эквивалентно:
$request = ServerRequestCreator::create();
# Публичные методы
# create
Создает новый экземпляр HttpSoft\Message\ServerRequest из суперглобальных массивов.
public static function create(ServerNormalizerInterface $normalizer = null): ServerRequestInterface;
Смотрите метод createFromGlobals()
, так как данный метод является оберткой над ним.
# createFromGlobals
Создает новый экземпляр HttpSoft\Message\ServerRequest из суперглобальных массивов.
public static function createFromGlobals(
array $server = null,
array $files = null,
array $cookie = null,
array $get = null,
array $post = null,
ServerNormalizerInterface $normalizer = null
): ServerRequestInterface;
Если любой из массивов ($server
, $files
, $cookie
, $get
, $post
) не был указан или равняется null
, то будут взяты значения из суперглобальных массивов ($_SERVER
, $_FILES
, $_COOKIE
, $_GET
, $_POST
), но если был указан массив (даже пустой), то будет использоваться он.
$request = ServerRequestCreator::createFromGlobals([], null, [], null, []);
$request->getServerParams(); // []
$request->getUploadedFiles(); // $_FILES
$request->getCookieParams(); // []
$request->getQueryParams(); // $_GET
$request->getParsedBody(); // []
$normalizer
отвечает за нормализацию данных, необходимых для создания HttpSoft\Message\ServerRequest.
$request = ServerRequestCreator::createFromGlobals();
$request->getMethod(); // 'GET'
$request->getProtocolVersion(); // '1.1'
$request->getBody()->getContents(); // 'Контент страницы'
$request->getBody()->getMetadata('uri'); // 'php://input'
(string) $request->getUri(); // 'http://example.com/path'
$request->getHeaders(); // ['Host' => ['example.com'], 'Content-Type' => ['text/html']]
$request->getServerParams(); // $_SERVER
$request->getUploadedFiles(); // $_FILES
$request->getCookieParams(); // $_COOKIE
$request->getQueryParams(); // $_GET
$request->getParsedBody(); // $_POST
$request->getAttributes(); // []
Если $normalizer
не был указан или равняется null
, то будет использоваться HttpSoft\ServerRequest\SapiNormalizer, который нормализует данные из PHP SAPI. Если HttpSoft\ServerRequest\SapiNormalizer вам не подходит, то создайте собственный, реализовав интерфейс HttpSoft\ServerRequest\ServerNormalizerInterface.