# Трейт HttpSoft\Message\RequestTrait

Трейт, реализующий методы, определенные в Psr\Http\Message\RequestInterface, используется внутри HttpSoft\Message\Request и HttpSoft\Message\ServerRequest.

Исходный код на GitHub.

# Публичные методы

Оригинальное подробное описание методов смотрите в Psr\Http\Message\RequestInterface.

Все остальные методы с описанием находятся в подключаемом трейте (HttpSoft\Message\MessageTrait).

Сеттеры с префиксом with не изменяют текущий, а возвращают новый экземпляр класса (использующего HttpSoft\Message\RequestTrait) с измененными данными.

# getRequestTarget

Возвращает цель запроса HTTP-сообщения.

public function getRequestTarget(): string;

Пример возвращаемых значений: '/', '*', 'path/to/target?query=string', 'user:pass@example.com:8080'.

# withRequestTarget

Возвращает новый экземпляр с указанной целью HTTP-запроса.

/**
 * @param mixed $requestTarget
 * @return static
 */
public function withRequestTarget($requestTarget): RequestInterface;

Если указана невалидная цель HTTP-запроса, будет брошено исключение \InvalidArgumentException.

$request->getRequestTarget(); // '/'

$newRequest = $request->withRequestTarget('*');
$newRequest->getRequestTarget(); // '*'
$request->getRequestTarget(); // '/'

$request->withRequestTarget('/ *') // throws InvalidArgumentException

# getMethod

Возвращает метод HTTP-запроса.

public function getMethod(): string;

Пример возвращаемых значений: 'GET', 'HEAD', 'POST'.

# withMethod

Возвращает новый экземпляр с указанным методом HTTP-запроса. Имя метода чувствительно к регистру.

/**
 * @param string $method
 * @return static
 */
public function withMethod($method): RequestInterface;

Если указан невалидный метод HTTP-запроса, будет брошено исключение \InvalidArgumentException.

$request->getMethod(); // 'GET'

$newRequest = $request->withMethod('POST');
$newRequest->getMethod(); // 'POST'
$request->getMethod(); // 'GET'

$request->withMethod(null); // throws InvalidArgumentException
$request->withMethod("GE\nT") // throws InvalidArgumentException

# getUri

Возвращает экземпляр Psr\Http\Message\UriInterface.

public function getUri(): UriInterface;

HttpSoft\Message\Uri реализует Psr\Http\Message\UriInterface.

# withUri

Возвращает новый экземпляр с указанным экземпляром Psr\Http\Message\UriInterface.

public function withUri(UriInterface $uri, $preserveHost = false): RequestInterface;

Если $preserveHost === true, то предыдущий заголовок хоста будет сохранен, если он существовал.