BackendMaintenance   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 21
c 0
b 0
f 0
dl 0
loc 64
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A addI18n() 0 8 1
A addRules() 0 11 2
A t() 0 3 1
A __construct() 0 5 1
1
<?php
2
3
namespace dominus77\maintenance;
4
5
use Yii;
6
use yii\base\BaseObject;
7
use yii\helpers\ArrayHelper;
8
use yii\i18n\PhpMessageSource;
9
10
/**
11
 * Class BackendMaintenance
12
 * @package dominus77\maintenance
13
 */
14
class BackendMaintenance extends BaseObject
15
{
16
    /**
17
     * Value of "OK" status code.
18
     */
19
    const STATUS_CODE_OK = 200;
20
21
    /**
22
     * Value of "Maintenance" status code.
23
     */
24
    const STATUS_CODE_MAINTENANCE = 503;
25
26
    /**
27
     * BackendMaintenance constructor.
28
     * @param array $config
29
     */
30
    public function __construct($config = [])
31
    {
32
        $this->addI18n();
33
        $this->addRules();
34
        parent::__construct($config);
35
    }
36
37
    /**
38
     * Add rules this route
39
     */
40
    private function addRules()
41
    {
42
        $rules = [
43
            'maintenance' => 'maintenance/index',
44
            'maintenance/<_a:\w+>' => 'maintenance/<_a>'
45
        ];
46
        $rules = (YII_DEBUG) ? ArrayHelper::merge($rules, [
47
            '<_m:debug>/<_c:\w+>/<_a:\w+>' => '<_m>/<_c>/<_a>',
48
        ]) : $rules;
49
        $urlManager = Yii::$app->urlManager;
50
        $urlManager->addRules($rules);
51
    }
52
53
    /**
54
     * Add i18n
55
     */
56
    private function addI18n()
57
    {
58
        $i18n = Yii::$app->i18n;
59
        $i18n->translations['dominus77/maintenance/*'] = [
60
            'class' => PhpMessageSource::class,
61
            'basePath' => '@dominus77/maintenance/messages',
62
            'fileMap' => [
63
                'dominus77/maintenance/app' => 'app.php',
64
            ]
65
        ];
66
    }
67
68
    /**
69
     * @param $category
70
     * @param $message
71
     * @param array $params
72
     * @param string $language
73
     * @return string
74
     */
75
    public static function t($category, $message, $params = [], $language = '')
76
    {
77
        return Yii::t('dominus77/maintenance/' . $category, $message, $params, $language);
78
    }
79
}
80