Completed
Push — master ( e41d14...aa6fb7 )
by Alexey
02:22
created

Bootstrap::rulesUsers()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 1
eloc 7
nc 1
nop 0
1
<?php
2
3
namespace modules\users;
4
5
use Yii;
6
7
/**
8
 * Class Bootstrap
9
 * @package modules\users
10
 */
11
class Bootstrap
12
{
13
    public function __construct()
14
    {
15
        $this->registerTranslate();
16
        $this->registerRules();
17
    }
18
19
    /**
20
     * Translate
21
     */
22
    protected function registerTranslate()
23
    {
24
        $i18n = Yii::$app->i18n;
25
        $i18n->translations['modules/users/*'] = [
26
            'class' => 'yii\i18n\PhpMessageSource',
27
            'basePath' => '@modules/users/messages',
28
            'fileMap' => [
29
                'modules/users/module' => 'module.php',
30
                'modules/users/mail' => 'mail.php',
31
            ],
32
        ];
33
    }
34
35
    /**
36
     * Rules
37
     */
38
    protected function registerRules()
39
    {
40
        $urlManager = Yii::$app->urlManager;
41
        $urlManager->addRules($this->rules());
42
    }
43
44
    /**
45
     * @return array
46
     */
47
    protected function rules()
48
    {
49
        $rules = [
50
            '<_a:(login|logout|signup|email-confirm|request-password-reset|reset-password)>' => 'users/default/<_a>',
51
        ];
52
        array_push($rules, $this->rulesUser(), $this->rulesUsers(), $this->rulesProfile());
53
        return $rules;
54
    }
55
56
    /**
57
     * @return array
58
     */
59
    protected function rulesUser()
60
    {
61
        return [
62
            'class' => 'yii\web\GroupUrlRule',
63
            'routePrefix' => 'users/default',
64
            'prefix' => 'user',
65
            'rules' => [
66
                '<_a:(create)>' => '<_a>',
67
                '<id:\d+>/<_a:[\w\-]+>' => '<_a>',
68
            ],
69
        ];
70
    }
71
72
    /**
73
     * @return array
74
     */
75
    protected function rulesUsers()
76
    {
77
        return [
78
            'class' => 'yii\web\GroupUrlRule',
79
            'routePrefix' => 'users/default',
80
            'prefix' => 'users',
81
            'rules' => [
82
                '' => 'index',
83
                '<_a:[\w\-]+>' => '<_a>',
84
            ],
85
        ];
86
    }
87
88
    /**
89
     * @return array
90
     */
91
    protected function rulesProfile()
92
    {
93
        return [
94
            'class' => 'yii\web\GroupUrlRule',
95
            'routePrefix' => 'users/profile',
96
            'prefix' => 'profile',
97
            'rules' => [
98
                '' => 'index',
99
                '<_a:[\w\-]+>' => '<_a>',
100
            ],
101
        ];
102
    }
103
}
104