SignupForm   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 4
c 2
b 0
f 1
lcom 1
cbo 2
dl 0
loc 48
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A rules() 0 18 1
A signup() 0 14 3
1
<?php
2
namespace frontend\models;
3
4
use common\models\User;
5
use yii\base\Model;
6
use Yii;
7
8
/**
9
 * Signup form
10
 */
11
class SignupForm extends Model
12
{
13
    public $username;
14
    public $email;
15
    public $password;
16
17
    /**
18
     * @inheritdoc
19
     */
20
    public function rules()
21
    {
22
        return [
23
            ['username', 'filter', 'filter' => 'trim'],
24
            ['username', 'required'],
25
            ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'],
26
            ['username', 'string', 'min' => 2, 'max' => 255],
27
28
            ['email', 'filter', 'filter' => 'trim'],
29
            ['email', 'required'],
30
            ['email', 'email'],
31
            ['email', 'string', 'max' => 255],
32
            ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
33
34
            ['password', 'required'],
35
            ['password', 'string', 'min' => 6],
36
        ];
37
    }
38
39
    /**
40
     * Signs user up.
41
     *
42
     * @return User|null the saved model or null if saving fails
43
     */
44
    public function signup()
45
    {
46
        if (!$this->validate()) {
47
            return null;
48
        }
49
        
50
        $user = new User();
51
        $user->username = $this->username;
52
        $user->email = $this->email;
53
        $user->setPassword($this->password);
54
        $user->generateAuthKey();
55
        
56
        return $user->save() ? $user : null;
57
    }
58
}
59