Conditions | 1 |
Paths | 1 |
Total Lines | 2 |
Code Lines | 1 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
Metric | Value |
---|---|
cc | 1 |
eloc | 1 |
c | 1 |
b | 0 |
f | 0 |
nc | 1 |
nop | 0 |
dl | 0 |
loc | 2 |
rs | 10 |
1 | <?php |
||
2 | |||
3 | namespace Silk\User; |
||
4 | |||
5 | use WP_User; |
||
0 ignored issues
–
show
introduced
by
![]() |
|||
6 | use Silk\Type\Model as BaseModel; |
||
7 | use Silk\User\Exception\UserNotFoundException; |
||
8 | |||
9 | class Model extends BaseModel |
||
10 | { |
||
0 ignored issues
–
show
|
|||
11 | /** |
||
0 ignored issues
–
show
|
|||
12 | * The object type in WordPress |
||
0 ignored issues
–
show
|
|||
13 | */ |
||
0 ignored issues
–
show
|
|||
14 | const OBJECT_TYPE = 'user'; |
||
0 ignored issues
–
show
|
|||
15 | |||
16 | /** |
||
0 ignored issues
–
show
|
|||
17 | * The primary ID property on the object |
||
0 ignored issues
–
show
|
|||
18 | */ |
||
0 ignored issues
–
show
|
|||
19 | const ID_PROPERTY = 'ID'; |
||
0 ignored issues
–
show
|
|||
20 | |||
21 | /** |
||
0 ignored issues
–
show
|
|||
22 | * Type object property aliases |
||
0 ignored issues
–
show
|
|||
23 | * @var array |
||
0 ignored issues
–
show
|
|||
24 | */ |
||
0 ignored issues
–
show
|
|||
25 | protected $objectAliases = [ |
||
0 ignored issues
–
show
|
|||
26 | 'email' => 'user_email', |
||
0 ignored issues
–
show
|
|||
27 | 'slug' => 'user_nicename', |
||
0 ignored issues
–
show
|
|||
28 | 'username' => 'user_login', |
||
0 ignored issues
–
show
|
|||
29 | 'password' => 'user_pass', |
||
0 ignored issues
–
show
|
|||
30 | ]; |
||
0 ignored issues
–
show
|
|||
31 | |||
32 | /** |
||
0 ignored issues
–
show
|
|||
33 | * User Constructor. |
||
0 ignored issues
–
show
|
|||
34 | * |
||
0 ignored issues
–
show
|
|||
35 | * @param WP_User $user |
||
0 ignored issues
–
show
|
|||
36 | */ |
||
0 ignored issues
–
show
|
|||
37 | public function __construct(WP_User $user = null) |
||
0 ignored issues
–
show
|
|||
38 | { |
||
0 ignored issues
–
show
|
|||
39 | if (! $user) { |
||
0 ignored issues
–
show
|
|||
40 | $user = new WP_User; |
||
0 ignored issues
–
show
|
|||
41 | } |
||
0 ignored issues
–
show
|
|||
42 | |||
43 | $this->object = $user; |
||
0 ignored issues
–
show
|
|||
44 | } |
||
0 ignored issues
–
show
|
|||
45 | |||
46 | /** |
||
0 ignored issues
–
show
|
|||
47 | * Create a new instance from the user ID. |
||
0 ignored issues
–
show
|
|||
48 | * |
||
0 ignored issues
–
show
|
|||
49 | * @param string|int $id User ID |
||
0 ignored issues
–
show
|
|||
50 | * |
||
0 ignored issues
–
show
|
|||
51 | * @throws UserNotFoundException |
||
0 ignored issues
–
show
|
|||
52 | * |
||
0 ignored issues
–
show
|
|||
53 | * @return static |
||
0 ignored issues
–
show
|
|||
54 | */ |
||
0 ignored issues
–
show
|
|||
55 | View Code Duplication | public static function fromID($id) |
|
1 ignored issue
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
56 | { |
||
0 ignored issues
–
show
|
|||
57 | if (! $user = get_user_by('id', $id)) { |
||
0 ignored issues
–
show
|
|||
58 | throw new UserNotFoundException("No user found with ID $id"); |
||
0 ignored issues
–
show
|
|||
59 | } |
||
0 ignored issues
–
show
|
|||
60 | |||
61 | return new static($user); |
||
0 ignored issues
–
show
|
|||
62 | } |
||
0 ignored issues
–
show
|
|||
63 | |||
64 | /** |
||
0 ignored issues
–
show
|
|||
65 | * Create a new instance from the username. |
||
0 ignored issues
–
show
|
|||
66 | * |
||
0 ignored issues
–
show
|
|||
67 | * @param string $username Username (login) |
||
0 ignored issues
–
show
|
|||
68 | * |
||
0 ignored issues
–
show
|
|||
69 | * @throws UserNotFoundException |
||
0 ignored issues
–
show
|
|||
70 | * |
||
0 ignored issues
–
show
|
|||
71 | * @return static |
||
0 ignored issues
–
show
|
|||
72 | */ |
||
0 ignored issues
–
show
|
|||
73 | public static function fromUsername($username) |
||
0 ignored issues
–
show
|
|||
74 | { |
||
0 ignored issues
–
show
|
|||
75 | if (! $user = get_user_by('login', $username)) { |
||
0 ignored issues
–
show
|
|||
76 | throw new UserNotFoundException("No user found with username: $username"); |
||
0 ignored issues
–
show
|
|||
77 | } |
||
0 ignored issues
–
show
|
|||
78 | |||
79 | return new static($user); |
||
0 ignored issues
–
show
|
|||
80 | } |
||
0 ignored issues
–
show
|
|||
81 | |||
82 | /** |
||
0 ignored issues
–
show
|
|||
83 | * Create a new instance from the user's email address. |
||
0 ignored issues
–
show
|
|||
84 | * |
||
0 ignored issues
–
show
|
|||
85 | * @param string $email User email address |
||
0 ignored issues
–
show
|
|||
86 | * |
||
0 ignored issues
–
show
|
|||
87 | * @throws UserNotFoundException |
||
0 ignored issues
–
show
|
|||
88 | * |
||
0 ignored issues
–
show
|
|||
89 | * @return static |
||
0 ignored issues
–
show
|
|||
90 | */ |
||
0 ignored issues
–
show
|
|||
91 | View Code Duplication | public static function fromEmail($email) |
|
1 ignored issue
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
92 | { |
||
0 ignored issues
–
show
|
|||
93 | if (! $user = get_user_by('email', $email)) { |
||
0 ignored issues
–
show
|
|||
94 | throw new UserNotFoundException("No user found with email address: $email"); |
||
0 ignored issues
–
show
|
|||
95 | } |
||
0 ignored issues
–
show
|
|||
96 | |||
97 | return new static($user); |
||
0 ignored issues
–
show
|
|||
98 | } |
||
0 ignored issues
–
show
|
|||
99 | |||
100 | /** |
||
0 ignored issues
–
show
|
|||
101 | * Create a new instance from the user's slug. |
||
0 ignored issues
–
show
|
|||
102 | * |
||
0 ignored issues
–
show
|
|||
103 | * @param string $slug User slug (nicename) |
||
0 ignored issues
–
show
|
|||
104 | * |
||
0 ignored issues
–
show
|
|||
105 | * @throws UserNotFoundException |
||
0 ignored issues
–
show
|
|||
106 | * |
||
0 ignored issues
–
show
|
|||
107 | * @return static |
||
0 ignored issues
–
show
|
|||
108 | */ |
||
0 ignored issues
–
show
|
|||
109 | public static function fromSlug($slug) |
||
0 ignored issues
–
show
|
|||
110 | { |
||
0 ignored issues
–
show
|
|||
111 | if (! $user = get_user_by('slug', $slug)) { |
||
0 ignored issues
–
show
|
|||
112 | throw new UserNotFoundException("No user found with slug: $slug"); |
||
0 ignored issues
–
show
|
|||
113 | } |
||
0 ignored issues
–
show
|
|||
114 | |||
115 | return new static($user); |
||
0 ignored issues
–
show
|
|||
116 | } |
||
0 ignored issues
–
show
|
|||
117 | |||
118 | /** |
||
0 ignored issues
–
show
|
|||
119 | * Get a new query builder for the model. |
||
0 ignored issues
–
show
|
|||
120 | * |
||
0 ignored issues
–
show
|
|||
121 | * @return \Silk\Contracts\BuildsQueries |
||
0 ignored issues
–
show
|
|||
122 | */ |
||
0 ignored issues
–
show
|
|||
123 | public function newQuery() |
||
0 ignored issues
–
show
|
|||
124 | { |
||
0 ignored issues
–
show
|
|||
125 | return QueryBuilder::make(); |
||
0 ignored issues
–
show
|
|||
126 | } |
||
0 ignored issues
–
show
|
|||
127 | |||
128 | /** |
||
0 ignored issues
–
show
|
|||
129 | * Get the map of action => class for resolving active actions. |
||
0 ignored issues
–
show
|
|||
130 | * |
||
0 ignored issues
–
show
|
|||
131 | * @return array |
||
0 ignored issues
–
show
|
|||
132 | */ |
||
0 ignored issues
–
show
|
|||
133 | protected function actionClasses() |
||
0 ignored issues
–
show
|
|||
134 | { |
||
0 ignored issues
–
show
|
|||
135 | return [ |
||
0 ignored issues
–
show
|
|||
136 | 'save' => Action\UserSaver::class, |
||
0 ignored issues
–
show
|
|||
137 | 'delete' => Action\UserDeleter::class, |
||
0 ignored issues
–
show
|
|||
138 | ]; |
||
0 ignored issues
–
show
|
|||
139 | } |
||
0 ignored issues
–
show
|
|||
140 | |||
141 | /** |
||
0 ignored issues
–
show
|
|||
142 | * Magic getter. |
||
0 ignored issues
–
show
|
|||
143 | * |
||
0 ignored issues
–
show
|
|||
144 | * @param string $property |
||
0 ignored issues
–
show
|
|||
145 | * |
||
0 ignored issues
–
show
|
|||
146 | * @return mixed |
||
0 ignored issues
–
show
|
|||
147 | */ |
||
0 ignored issues
–
show
|
|||
148 | public function __get($property) |
||
0 ignored issues
–
show
|
|||
149 | { |
||
0 ignored issues
–
show
|
|||
150 | if (! array_key_exists($property, $this->objectAliases)) { |
||
0 ignored issues
–
show
|
|||
151 | return parent::__get($property); |
||
0 ignored issues
–
show
|
|||
152 | } |
||
0 ignored issues
–
show
|
|||
153 | |||
154 | return data_get($this->object, $this->objectAliases[$property]); |
||
0 ignored issues
–
show
|
|||
155 | } |
||
0 ignored issues
–
show
|
|||
156 | |||
157 | /** |
||
0 ignored issues
–
show
|
|||
158 | * Magic setter. |
||
0 ignored issues
–
show
|
|||
159 | * |
||
0 ignored issues
–
show
|
|||
160 | * @param string $property The property name |
||
0 ignored issues
–
show
|
|||
161 | * @param mixed $value The new property value |
||
0 ignored issues
–
show
|
|||
162 | */ |
||
0 ignored issues
–
show
|
|||
163 | public function __set($property, $value) |
||
0 ignored issues
–
show
|
|||
164 | { |
||
0 ignored issues
–
show
|
|||
165 | if (array_key_exists($property, $this->objectAliases)) { |
||
0 ignored issues
–
show
|
|||
166 | $property = $this->objectAliases[$property]; |
||
0 ignored issues
–
show
|
|||
167 | } |
||
0 ignored issues
–
show
|
|||
168 | |||
169 | $this->object->$property = $value; |
||
0 ignored issues
–
show
|
|||
170 | } |
||
0 ignored issues
–
show
|
|||
171 | } |
||
0 ignored issues
–
show
|
|||
172 |