This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | /** |
||
4 | * _ __ __ _____ _____ ___ ____ _____ |
||
5 | * | | / // // ___//_ _// || __||_ _| |
||
6 | * | |/ // /(__ ) / / / /| || | | | |
||
7 | * |___//_//____/ /_/ /_/ |_||_| |_| |
||
8 | * @link http://vistart.name/ |
||
9 | * @copyright Copyright (c) 2016 vistart |
||
10 | * @license http://vistart.name/license/ |
||
11 | */ |
||
12 | |||
13 | namespace vistart\Models\traits; |
||
14 | |||
15 | use vistart\Models\models\BaseUserModel; |
||
16 | use Yii; |
||
17 | |||
18 | /** |
||
19 | * This trait is used for building blameable query class for blameable model, |
||
20 | * which would be attached three conditions. |
||
21 | * For example: |
||
22 | * ```php |
||
23 | * class BlameableQuery { |
||
24 | * use BlameableQueryTrait; |
||
25 | * } |
||
26 | * ``` |
||
27 | * |
||
28 | * @version 2.0 |
||
29 | * @author vistart <[email protected]> |
||
30 | */ |
||
31 | trait BlameableQueryTrait |
||
32 | { |
||
33 | use QueryTrait; |
||
34 | |||
35 | /** |
||
36 | * Specify confirmation. |
||
37 | * @param boolean $isConfirmed |
||
38 | * @return $this |
||
39 | */ |
||
40 | public function confirmed($isConfirmed = true) |
||
41 | { |
||
42 | $model = $this->noInitModel; |
||
0 ignored issues
–
show
|
|||
43 | if (!is_string($model->confirmationAttribute)) { |
||
44 | return $this; |
||
45 | } |
||
46 | return $this->andWhere([$model->confirmationAttribute => $isConfirmed]); |
||
0 ignored issues
–
show
It seems like
andWhere() must be provided by classes using this trait. How about adding it as abstract method to this trait?
This check looks for methods that are used by a trait but not required by it. To illustrate, let’s look at the following code example trait Idable {
public function equalIds(Idable $other) {
return $this->getId() === $other->getId();
}
}
The trait Adding the ![]() |
|||
47 | } |
||
48 | |||
49 | /** |
||
50 | * Specify content. |
||
51 | * @param mixed $content |
||
52 | * @param false|string $like false, 'like', 'or like', 'not like', 'or not like'. |
||
53 | * @return $this |
||
54 | */ |
||
55 | 4 | public function content($content, $like = false) |
|
56 | { |
||
57 | 4 | $model = $this->noInitModel; |
|
58 | 4 | return $this->likeCondition($content, $model->contentAttribute, $like); |
|
59 | } |
||
60 | |||
61 | /** |
||
62 | * Specify parent. |
||
63 | * @param array|string $guid parent guid or array of them. non-parent if |
||
64 | * empty. If you don't want to specify parent, please do not access this |
||
65 | * method. |
||
66 | * @return $this |
||
67 | */ |
||
68 | public function parentGuid($guid) |
||
69 | { |
||
70 | $model = $this->noInitModel; |
||
71 | if (!is_string($model->parentAttribute)) { |
||
72 | return $this; |
||
73 | } |
||
74 | if (empty($guid)) { |
||
75 | return $this->andWhere([$model->parentAttribute => '']); |
||
0 ignored issues
–
show
It seems like
andWhere() must be provided by classes using this trait. How about adding it as abstract method to this trait?
This check looks for methods that are used by a trait but not required by it. To illustrate, let’s look at the following code example trait Idable {
public function equalIds(Idable $other) {
return $this->getId() === $other->getId();
}
}
The trait Adding the ![]() |
|||
76 | } |
||
77 | return $this->andWhere([$model->parentAttribute => $guid]); |
||
0 ignored issues
–
show
It seems like
andWhere() must be provided by classes using this trait. How about adding it as abstract method to this trait?
This check looks for methods that are used by a trait but not required by it. To illustrate, let’s look at the following code example trait Idable {
public function equalIds(Idable $other) {
return $this->getId() === $other->getId();
}
}
The trait Adding the ![]() |
|||
78 | } |
||
79 | |||
80 | /** |
||
81 | * Specify creator(s). |
||
82 | * @param string|array $guid |
||
83 | * @return $this |
||
84 | */ |
||
85 | 17 | public function createdBy($guid) |
|
86 | { |
||
87 | 17 | $model = $this->noInitModel; |
|
88 | 17 | if (!is_string($model->createdByAttribute)) { |
|
89 | return $this; |
||
90 | } |
||
91 | 17 | if ($guid instanceof BaseUserModel) { |
|
92 | 8 | $guid = $guid->guid; |
|
93 | 8 | } |
|
94 | 17 | return $this->andWhere([$model->createdByAttribute => $guid]); |
|
0 ignored issues
–
show
It seems like
andWhere() must be provided by classes using this trait. How about adding it as abstract method to this trait?
This check looks for methods that are used by a trait but not required by it. To illustrate, let’s look at the following code example trait Idable {
public function equalIds(Idable $other) {
return $this->getId() === $other->getId();
}
}
The trait Adding the ![]() |
|||
95 | } |
||
96 | |||
97 | /** |
||
98 | * Specify last updater(s). |
||
99 | * @param string|array $guid |
||
100 | * @return $this |
||
101 | */ |
||
102 | public function updatedBy($guid) |
||
103 | { |
||
104 | $model = $this->noInitModel; |
||
105 | if (!is_string($model->updatedByAttribute)) { |
||
106 | return $this; |
||
107 | } |
||
108 | if ($guid instanceof BaseUserModel) { |
||
109 | $guid = $guid->guid; |
||
110 | } |
||
111 | return $this->andWhere([$model->updatedByAttribute => $guid]); |
||
0 ignored issues
–
show
It seems like
andWhere() must be provided by classes using this trait. How about adding it as abstract method to this trait?
This check looks for methods that are used by a trait but not required by it. To illustrate, let’s look at the following code example trait Idable {
public function equalIds(Idable $other) {
return $this->getId() === $other->getId();
}
}
The trait Adding the ![]() |
|||
112 | } |
||
113 | |||
114 | /** |
||
115 | * Attach current identity to createdBy condition. |
||
116 | * @param BaseUserModel $identity |
||
117 | * @return $this |
||
118 | */ |
||
119 | 9 | public function byIdentity($identity = null) |
|
120 | { |
||
121 | 9 | if (!$identity) { |
|
122 | $identity = Yii::$app->user->identity; |
||
123 | } |
||
124 | 9 | if (!$identity || !$identity->canGetProperty('guid')) { |
|
125 | return $this; |
||
126 | } |
||
127 | 9 | return $this->createdBy($identity->guid); |
|
128 | } |
||
129 | } |
||
130 |
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: