Skip to content

v2.2.0: help in parsing query parameters and request documents

Compare
Choose a tag to compare
@lode lode released this 07 Apr 09:38
45fbe33

This release makes it easier to process query parameters and request documents. There's a new RequestParser class which can be constructed from PSR-7 request objects or $_GET/$_POST/$_SERVER superglobals. See below or check the example code with all options.

Query parameters

On a a request for GET /users?fields[user]=name,location&sort=-name you can:

$requestParser->hasSparseFieldset('user'); // true
$requestParser->getSparseFieldset('user'); // ['name', 'location']

$requestParser->hasSortFields(); // true
$requestParser->getSortFields(); // [['field' => 'name', 'order' => RequestParser::SORT_DESCENDING]]

Request documents

On a request for POST /users with this POST data:

{
    "data": {
        "type": "user",
        "attributes": {
        	"name": "Zaphod"
        }
    }
}

You can check for contents inside a request document, without a lot of isset/array_has_key on nested arrays:

$requestParser->hasAttribute('name'); // true
$requestParser->getAttribute('name'); // 'Zaphod'