Completed
Pull Request — master (#2)
by
unknown
02:22
created

Module::setPageSize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
ccs 0
cts 4
cp 0
rs 10
cc 1
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * Yii2 Pages Module
4
 *
5
 * @link      https://github.com/hiqdev/yii2-module-pages
6
 * @package   yii2-module-pages
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2016-2017, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hiqdev\yii2\modules\pages;
12
13
use hiqdev\yii2\modules\pages\interfaces\PageInterface;
14
use hiqdev\yii2\modules\pages\models\AbstractPage;
15
use hiqdev\yii2\modules\pages\models\PagesList;
16
use hiqdev\yii2\modules\pages\interfaces\StorageInterface;
17
use Yii;
18
19
class Module extends \yii\base\Module
20
{
21
    /** @var array|StorageInterface */
22
    protected $_storage;
23
24
    /** @var int */
25
    private $pageSize;
26
27
    const DEFAULT_PAGE_SIZE = 5;
28
29
    public static function getInstance(): Module
30
    {
31
        return Yii::$app->getModule('pages');
32
    }
33
34
    /**
35
     * This to use standard app pathes for views and layouts.
36
     * @return string
37
     */
38
    public function getViewPath()
39
    {
40
        return Yii::$app->getViewPath();
41
    }
42
43
    /**
44
     * @param string $pageName
45
     * @return AbstractPage|null
46
     * @throws \yii\base\InvalidConfigException
47
     */
48
    public function find(string $pageName): ?PageInterface
49
    {
50
        $page = $this->getStorage()->getPage($pageName);
51
52
        return $page;
53
    }
54
55
    /**
56
     * @param string|null $id
57
     * @return PagesList|null
58
     * @throws \yii\base\InvalidConfigException
59
     */
60
    public function findList(string $id = null): ?PagesList
61
    {
62
        $list = $this->getStorage()->getList($id);
63
64
        return $list;
65
    }
66
67
    /**
68
     * @param array $storageConfig
69
     */
70
    public function setStorage($storageConfig): void
71
    {
72
        $this->_storage = $storageConfig;
73
    }
74
75
    /**
76
     * @return StorageInterface
77
     * @throws \yii\base\InvalidConfigException
78
     */
79
    public function getStorage(): StorageInterface
80
    {
81
        if (!is_object($this->_storage)) {
82
            $this->_storage = Yii::createObject($this->_storage);
83
        }
84
85
        return $this->_storage;
86
    }
87
88
    /**
89
     * @param int $pageSize
90
     */
91
    public function setPageSize(int $pageSize): void
92
    {
93
        $this->pageSize = $pageSize;
94
    }
95
96
    /**
97
     * @return int
98
     */
99
    public function getPageSize(): int
100
    {
101
        return $this->pageSize ?? self::DEFAULT_PAGE_SIZE;
102
    }
103
}
104