TYPO3CMS  8
 All Classes Namespaces Files Functions Variables Pages
ServerRequest Class Reference
Inheritance diagram for ServerRequest:
Request Message

Public Member Functions

 __construct ($uri=null, $method=null, $body= 'php://input', array $headers=[], array $serverParams=[], array $uploadedFiles=null)
 
 getServerParams ()
 
 getCookieParams ()
 
 withCookieParams (array $cookies)
 
 getQueryParams ()
 
 withQueryParams (array $query)
 
 getUploadedFiles ()
 
 withUploadedFiles (array $uploadedFiles)
 
 getParsedBody ()
 
 withParsedBody ($data)
 
 getAttributes ()
 
 getAttribute ($name, $default=null)
 
 withAttribute ($name, $value)
 
 withoutAttribute ($name)
 
- Public Member Functions inherited from Request
 __construct ($uri=null, $method=null, $body= 'php://input', array $headers=[])
 
 getHeaders ()
 
 getHeader ($header)
 
 getRequestTarget ()
 
 withRequestTarget ($requestTarget)
 
 getMethod ()
 
 withMethod ($method)
 
 getUri ()
 
 withUri (UriInterface $uri, $preserveHost=false)
 
- Public Member Functions inherited from Message
 getProtocolVersion ()
 
 withProtocolVersion ($version)
 
 getHeaders ()
 
 hasHeader ($name)
 
 getHeader ($name)
 
 getHeaderLine ($name)
 
 withHeader ($name, $value)
 
 withAddedHeader ($name, $value)
 
 withoutHeader ($name)
 
 getBody ()
 
 withBody (StreamInterface $body)
 
 filter ($value)
 
 validateHeaderName ($name)
 
 isValidHeaderValue ($value)
 

Protected Member Functions

 validateUploadedFiles (array $uploadedFiles)
 
- Protected Member Functions inherited from Request
 getHostFromUri ()
 
 validateMethod ($method)
 
- Protected Member Functions inherited from Message
 assertHeaders (array $headers)
 
 filterHeaders (array $originalHeaders)
 
 arrayContainsOnlyStrings (array $data)
 
 validateHeaderValues (array $values)
 

Protected Attributes

 $attributes = []
 
 $cookieParams = []
 
 $parsedBody
 
 $queryParams = []
 
 $serverParams = []
 
 $uploadedFiles = []
 
- Protected Attributes inherited from Request
 $requestTarget
 
 $method
 
 $supportedMethods
 
 $uri
 
- Protected Attributes inherited from Message
 $protocolVersion = '1.1'
 
 $headers = []
 
 $lowercasedHeaderNames = []
 
 $body
 

Detailed Description

Represents a typical request incoming from the server to be processed by the TYPO3 Core. The original request is built from the ServerRequestFactory inside TYPO3's Bootstrap.

Note that the PSR-7 standard works with immutable value objects, meaning that any modification to a Request object using the "with" methods will result in a new Request object.

Highly inspired by https://github.com/phly/http/

Definition at line 34 of file ServerRequest.php.

Constructor & Destructor Documentation

__construct (   $uri = null,
  $method = null,
  $body = 'php://input',
array  $headers = [],
array  $serverParams = [],
array  $uploadedFiles = null 
)

Constructor, the only place to set all parameters of this Message/Request

Parameters
NULL | string$uriURI for the request, if any.
NULL | string$methodHTTP method for the request, if any.
string | resource | StreamInterface$bodyMessage body, if any.
array$headersHeaders for the message, if any.
array$serverParamsServer parameters, typically from $_SERVER
array$uploadedFilesUpload file information, a tree of UploadedFiles
Exceptions
InvalidArgumentException for any invalid value.

Definition at line 77 of file ServerRequest.php.

References Message\$body, Message\$headers, Request\$method, ServerRequest\$serverParams, ServerRequest\$uploadedFiles, Request\$uri, and ServerRequest\validateUploadedFiles().

Member Function Documentation

getAttribute (   $name,
  $default = null 
)

Retrieve a single derived request attribute.

Retrieves a single derived request attribute as described in getAttributes(). If the attribute has not been previously set, returns the default value as provided.

This method obviates the need for a hasAttribute() method, as it allows specifying a default value to return if the attribute is not found.

See also
getAttributes()
Parameters
string$nameThe attribute name.
mixed$defaultDefault value to return if the attribute does not exist.
Returns
mixed

Definition at line 311 of file ServerRequest.php.

getAttributes ( )

Retrieve attributes derived from the request.

The request "attributes" may be used to allow injection of any parameters derived from the request: e.g., the results of path match operations; the results of decrypting cookies; the results of deserializing non-form-encoded message bodies; etc. Attributes will be application and request specific, and CAN be mutable.

Returns
array Attributes derived from the request.

Definition at line 290 of file ServerRequest.php.

References ServerRequest\$attributes.

getCookieParams ( )

Retrieve cookies.

Retrieves cookies sent by the client to the server.

The data MUST be compatible with the structure of the $_COOKIE superglobal.

Returns
array

Definition at line 113 of file ServerRequest.php.

References ServerRequest\$cookieParams.

getParsedBody ( )

Retrieve any parameters provided in the request body.

If the request Content-Type is either application/x-www-form-urlencoded or multipart/form-data, and the request method is POST, this method MUST return the contents of $_POST.

Otherwise, this method may return any results of deserializing the request body content; as parsing returns structured content, the potential types MUST be arrays or objects only. A null value indicates the absence of body content.

Returns
null|array|object The deserialized body parameters, if any. These will typically be an array or object.

Definition at line 239 of file ServerRequest.php.

References ServerRequest\$parsedBody.

getQueryParams ( )

Retrieve query string arguments.

Retrieves the deserialized query string arguments, if any.

Note: the query params might not be in sync with the URI or server params. If you need to ensure you are only getting the original values, you may need to parse the query string from getUri()->getQuery() or from the QUERY_STRING server param.

Returns
array

Definition at line 154 of file ServerRequest.php.

References ServerRequest\$queryParams.

getServerParams ( )

Retrieve server parameters.

Retrieves data related to the incoming request environment, typically derived from PHP's $_SERVER superglobal. The data IS NOT REQUIRED to originate from $_SERVER.

Returns
array

Definition at line 98 of file ServerRequest.php.

References ServerRequest\$serverParams.

getUploadedFiles ( )

Retrieve normalized file upload data.

This method returns upload metadata in a normalized tree, with each leaf an instance of Psr.

These values MAY be prepared from $_FILES or the message body during instantiation, or MAY be injected via withUploadedFiles().

Returns
array An array tree of UploadedFileInterface instances; an empty array MUST be returned if no data is present.

Definition at line 200 of file ServerRequest.php.

References ServerRequest\$uploadedFiles.

validateUploadedFiles ( array  $uploadedFiles)
protected

Recursively validate the structure in an uploaded files array.

Parameters
array$uploadedFiles
Exceptions
InvalidArgumentException if any leaf is not an UploadedFileInterface instance.

Definition at line 371 of file ServerRequest.php.

Referenced by ServerRequest\__construct(), and ServerRequest\withUploadedFiles().

withAttribute (   $name,
  $value 
)

Return an instance with the specified derived request attribute.

This method allows setting a single derived request attribute as described in getAttributes().

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated attribute.

See also
getAttributes()
Parameters
string$nameThe attribute name.
mixed$valueThe value of the attribute.
Returns
ServerRequest

Definition at line 332 of file ServerRequest.php.

withCookieParams ( array  $cookies)

Return an instance with the specified cookies.

The data IS NOT REQUIRED to come from the $_COOKIE superglobal, but MUST be compatible with the structure of $_COOKIE. Typically, this data will be injected at instantiation.

This method MUST NOT update the related Cookie header of the request instance, nor related values in the server params.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated cookie values.

Parameters
array$cookiesArray of key/value pairs representing cookies.
Returns
ServerRequest

Definition at line 135 of file ServerRequest.php.

withoutAttribute (   $name)

Return an instance that removes the specified derived request attribute.

This method allows removing a single derived request attribute as described in getAttributes().

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that removes the attribute.

See also
getAttributes()
Parameters
string$nameThe attribute name.
Returns
ServerRequest

Definition at line 354 of file ServerRequest.php.

withParsedBody (   $data)

Return an instance with the specified body parameters.

These MAY be injected during instantiation.

If the request Content-Type is either application/x-www-form-urlencoded or multipart/form-data, and the request method is POST, use this method ONLY to inject the contents of $_POST.

The data IS NOT REQUIRED to come from $_POST, but MUST be the results of deserializing the request body content. Deserialization/parsing returns structured data, and, as such, this method ONLY accepts arrays or objects, or a null value if nothing was available to parse.

As an example, if content negotiation determines that the request data is a JSON payload, this method could be used to create a request instance with the deserialized parameters.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated body parameters.

Parameters
null | array | object$dataThe deserialized body data. This will typically be in an array or object.
Returns
ServerRequest
Exceptions
InvalidArgumentException if an unsupported argument type is provided.

Definition at line 272 of file ServerRequest.php.

withQueryParams ( array  $query)

Return an instance with the specified query string arguments.

These values SHOULD remain immutable over the course of the incoming request. They MAY be injected during instantiation, such as from PHP's $_GET superglobal, or MAY be derived from some other value such as the URI. In cases where the arguments are parsed from the URI, the data MUST be compatible with what PHP's parse_str() would return for purposes of how duplicate query parameters are handled, and how nested sets are handled.

Setting query string arguments MUST NOT change the URI stored by the request, nor the values in the server params.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated query string arguments.

Parameters
array$queryArray of query string arguments, typically from $_GET.
Returns
ServerRequest

Definition at line 181 of file ServerRequest.php.

withUploadedFiles ( array  $uploadedFiles)

Create a new instance with the specified uploaded files.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated body parameters.

Parameters
array$uploadedFilesAn array tree of UploadedFileInterface instances.
Returns
ServerRequest
Exceptions
InvalidArgumentException if an invalid structure is provided.

Definition at line 216 of file ServerRequest.php.

References ServerRequest\$uploadedFiles, and ServerRequest\validateUploadedFiles().

Member Data Documentation

$attributes = []
protected

Definition at line 39 of file ServerRequest.php.

Referenced by ServerRequest\getAttributes().

$cookieParams = []
protected

Definition at line 44 of file ServerRequest.php.

Referenced by ServerRequest\getCookieParams().

$parsedBody
protected

Definition at line 49 of file ServerRequest.php.

Referenced by ServerRequest\getParsedBody().

$queryParams = []
protected

Definition at line 54 of file ServerRequest.php.

Referenced by ServerRequest\getQueryParams().

$serverParams = []
protected

Definition at line 59 of file ServerRequest.php.

Referenced by ServerRequest\__construct(), and ServerRequest\getServerParams().

$uploadedFiles = []
protected