Passed
Push — master ( 0136ed...64d873 )
by Petr
02:12
created

PageLink   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 14
c 1
b 0
f 1
dl 0
loc 31
rs 10
wmc 3
1
<?php
2
3
namespace kalanis\kw_address_handler\examples;
4
5
6
use kalanis\kw_address_handler\Handler;
7
use kalanis\kw_address_handler\SingleVariable;
8
9
10
/**
11
 * Class PageLink
12
 * @package kalanis\kw_address_handler\examples
13
 * Update links with data from pager.
14
 *
15
 * Example:
16
17
$inputs = new kalanis\kw_input\Interfaces\Inputs();
18
19
...
20
21
$urlLink = new PageLink(new Handler($inputs), 7, 'paging');
22
echo $urlLink->getPageLink(); // got page 7
23
24
...
25
26
$urlLink->setPageNumber(3);
27
echo $urlLink->getPageLink(); // got page 3
28
29
 */
30
class PageLink
31
{
32
    const DEFAULT_VAR_NAME = 'page';
33
34
    /** @var Handler */
35
    protected $urlHandler;
36
    /** @var SingleVariable */
37
    protected $urlVariable;
38
    /** @var int */
39
    protected $page = 1;
40
    /** @var string */
41
    protected $varName = self::DEFAULT_VAR_NAME;
42
43
    public function __construct(Handler $urlHandler, int $page = 1, string $variableName = self::DEFAULT_VAR_NAME)
44
    {
45
        $this->urlHandler = $urlHandler;
46
        $this->urlVariable = new SingleVariable($urlHandler->getParams());
47
        $this->urlVariable->setVariableName($variableName);
48
        $this->urlVariable->setVariableValue(1);
49
        $this->page = $page;
50
    }
51
52
    public function setPageNumber(int $page): void
53
    {
54
        $this->page = $page;
55
    }
56
57
    public function getPageLink(): string
58
    {
59
        $this->urlVariable->setVariableValue((string) $this->page);
60
        return strval($this->urlHandler->getAddress());
61
    }
62
}
63