Pagination   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 20
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A init() 0 9 4
1
<?php
2
3
4
namespace tuyakhov\jsonapi;
5
6
use Yii;
7
use yii\web\Request;
8
9
/**
10
 * This class enables the `page` query parameter family.
11
 * Query parameters such as page[number] and page[size] might be used.
12
 * @link https://jsonapi.org/format/1.1/#fetching-pagination
13
 */
14
class Pagination extends \yii\data\Pagination
15
{
16
    /** @var string default page size parameter */
17
    public $pageSizeParam = 'size';
18
19
    /** @var string default page number parameter  */
20
    public $pageParam = 'number';
21
22
    /**
23
     * Support `page` query parameter family
24
    */
25
    public function init()
26
    {
27
        if ($this->params === null) {
28
            $request = Yii::$app->getRequest();
29
            $params = $request instanceof Request ? $request->getQueryParam('page') : [];
30
            if (!is_array($params)) {
31
                $params = [];
32
            }
33
            $this->params = $params;
34
        }
35
    }
36
37
}