Module.php
2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
namespace common\modules\comment;
use common\modules\comment\models\CommentModel;
use common\modules\comment\models\RatingModel;
use Yii;
/**
* Class Module
* @package common\modules\comment
*/
class Module extends \yii\base\Module
{
/**
* @var string module name
*/
public static $name = 'artbox-comment';
/**
* User identity class, default to common\models\User
* @var string|null
*/
public $userIdentityClass = NULL;
/**
* Comment model class, default to common\modules\models\CommentModel
* @var string comment model class
*/
public $commentModelClass = NULL;
public $ratingModelClass = NULL;
/**
* This namespace will be used to load controller classes by prepending it to the controller
* class name.
* @var string the namespace that controller classes are in.
*/
public $controllerNamespace = 'common\modules\comment\controllers';
/**
* @var \yii\db\Connection DB connection, default to \Yii::$app->db
*/
public $db = NULL;
/**
* Key, used to encrypt and decrypt comment service data.
*
* @var string Encryption key
*/
public static $encryptionKey = 'artbox-comment';
/**
* Whether to enable comment rating or not.
*
* @var bool
*/
public static $enableRating = true;
/**
* Initializes the module.
* This method is called after the module is created and initialized with property values
* given in configuration. The default implementation will initialize
* [[controllerNamespace]] if it is not set. If you override this method, please make sure
* you call the parent implementation.
*/
public function init()
{
if($this->userIdentityClass === NULL) {
$this->userIdentityClass = Yii::$app->getUser()->identityClass;
}
if($this->commentModelClass === NULL) {
$this->commentModelClass = CommentModel::className();
}
if(self::$enableRating && $this->ratingModelClass === NULL) {
$this->ratingModelClass = RatingModel::className();
}
if(\Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = 'common\modules\comment\commands';
}
if($this->db === NULL) {
$this->db = \Yii::$app->db;
}
Yii::setAlias('@artbox-comment', __DIR__);
parent::init();
}
}