13
13
*/
14
14
class Assert
15
15
{
16
+ /**
17
+ * @var string
18
+ */
19
+ private static string $ exClass = InvalidArgumentException::class;
20
+
16
21
/**
17
22
* @param mixed $value
18
23
* @param string $errMsg
19
- *
20
- * @return mixed
21
24
*/
22
- public static function notEmpty (mixed $ value , string $ errMsg = '' ): mixed
25
+ public static function notEmpty (mixed $ value , string $ errMsg = '' ): void
23
26
{
24
27
if (empty ($ value )) {
25
28
throw static ::createEx ($ errMsg ?: 'Expected a non-empty value ' );
26
29
}
27
-
28
- return $ value ;
29
30
}
30
31
31
32
/**
32
33
* @param mixed $value
33
34
* @param string $errMsg
34
- *
35
- * @return mixed
36
35
*/
37
- public static function notNull (mixed $ value , string $ errMsg = '' ): mixed
36
+ public static function notNull (mixed $ value , string $ errMsg = '' ): void
38
37
{
39
38
if (null === $ value ) {
40
39
throw static ::createEx ($ errMsg ?: 'Expected a non-null value ' );
41
40
}
42
-
43
- return $ value ;
44
41
}
45
42
46
43
/**
47
44
* @param string $value
48
45
* @param string $errMsg
49
- *
50
- * @return string
51
46
*/
52
- public static function notBlank (string $ value , string $ errMsg = '' ): string
47
+ public static function notBlank (string $ value , string $ errMsg = '' ): void
53
48
{
54
49
if ('' === $ value ) {
55
50
throw static ::createEx ($ errMsg ?: 'Expected a non-blank string value ' );
56
51
}
57
-
58
- return $ value ;
59
52
}
60
53
61
54
/**
@@ -64,16 +57,12 @@ public static function notBlank(string $value, string $errMsg = ''): string
64
57
* @param mixed $value1
65
58
* @param mixed $value2
66
59
* @param string $errMsg
67
- *
68
- * @return bool
69
60
*/
70
- public static function equals (mixed $ value1 , mixed $ value2 , string $ errMsg = '' ): bool
61
+ public static function equals (mixed $ value1 , mixed $ value2 , string $ errMsg = '' ): void
71
62
{
72
63
if ($ value1 !== $ value2 ) {
73
64
throw static ::createEx ($ errMsg ?: "The $ value1 should equals to $ value2 " );
74
65
}
75
-
76
- return true ;
77
66
}
78
67
79
68
/**
@@ -82,175 +71,152 @@ public static function equals(mixed $value1, mixed $value2, string $errMsg = '')
82
71
* @param mixed $value1
83
72
* @param mixed $value2
84
73
* @param string $errMsg
85
- *
86
- * @return bool
87
74
*/
88
- public static function notEquals (mixed $ value1 , mixed $ value2 , string $ errMsg = '' ): bool
75
+ public static function notEquals (mixed $ value1 , mixed $ value2 , string $ errMsg = '' ): void
89
76
{
90
77
if ($ value1 === $ value2 ) {
91
78
throw static ::createEx ($ errMsg ?: "The $ value1 should not equals to $ value2 " );
92
79
}
93
-
94
- return true ;
95
80
}
96
81
97
82
/**
98
83
* @param bool $value
99
84
* @param string $errMsg
100
- *
101
- * @return bool
102
85
*/
103
- public static function isTrue (bool $ value , string $ errMsg = '' ): bool
86
+ public static function isTrue (bool $ value , string $ errMsg = '' ): void
104
87
{
105
88
if (false === $ value ) {
106
89
throw static ::createEx ($ errMsg ?: 'Expected a true value ' );
107
90
}
108
-
109
- return $ value ;
110
91
}
111
92
112
93
/**
113
94
* @param bool $value
114
95
* @param string $errMsg
115
- *
116
- * @return bool
117
96
*/
118
- public static function isFalse (bool $ value , string $ errMsg = '' ): bool
97
+ public static function isFalse (bool $ value , string $ errMsg = '' ): void
119
98
{
120
99
if (true === $ value ) {
121
100
throw static ::createEx ($ errMsg ?: 'Expected a false value ' );
122
101
}
123
-
124
- return $ value ;
125
102
}
126
103
127
104
/**
128
105
* @param mixed $needle
129
106
* @param array $haystack
130
107
* @param string $errMsg
131
- *
132
- * @return mixed
133
108
*/
134
- public static function inArray (mixed $ needle , array $ haystack , string $ errMsg = '' ): mixed
109
+ public static function inArray (mixed $ needle , array $ haystack , string $ errMsg = '' ): void
135
110
{
136
111
if (!in_array ($ needle , $ haystack , true )) {
137
112
throw static ::createEx ($ errMsg ?: 'Expected a value in array ' );
138
113
}
139
-
140
- return $ needle ;
141
114
}
142
115
143
116
/**
144
117
* Value should != 0
145
118
*
146
119
* @param int $value
147
120
* @param string $errMsg
148
- *
149
- * @return int
150
121
*/
151
- public static function notZero (int $ value , string $ errMsg = '' ): int
122
+ public static function notZero (int $ value , string $ errMsg = '' ): void
152
123
{
153
124
if ($ value === 0 ) {
154
125
throw static ::createEx ($ errMsg ?: 'Expected a non-zero integer value ' );
155
126
}
156
-
157
- return $ value ;
158
127
}
159
128
160
129
/**
161
130
* Natural number. >= 0
162
131
*
163
132
* @param int $value
164
133
* @param string $errMsg
165
- *
166
- * @return int
167
134
*/
168
- public static function naturalInt (int $ value , string $ errMsg = '' ): int
135
+ public static function naturalInt (int $ value , string $ errMsg = '' ): void
169
136
{
170
137
if ($ value < 0 ) {
171
138
throw static ::createEx ($ errMsg ?: 'Expected a natural number value(>=0) ' );
172
139
}
173
-
174
- return $ value ;
175
140
}
176
141
177
142
/**
178
143
* Positive integer. > 0
179
144
*
180
145
* @param int $value
181
146
* @param string $errMsg
182
- *
183
- * @return int
184
147
*/
185
- public static function positiveInt (int $ value , string $ errMsg = '' ): int
148
+ public static function positiveInt (int $ value , string $ errMsg = '' ): void
186
149
{
187
150
if ($ value < 1 ) {
188
151
throw static ::createEx ($ errMsg ?: 'Expected a positive integer value(>0) ' );
189
152
}
190
-
191
- return $ value ;
192
153
}
193
154
194
155
/**
195
156
* @param array $data
196
157
* @param string $key
197
158
* @param string $errMsg
198
- *
199
- * @return mixed
200
159
*/
201
- public static function arrayHasKey (array $ data , string $ key , string $ errMsg = '' ): mixed
160
+ public static function arrayHasKey (array $ data , string $ key , string $ errMsg = '' ): void
202
161
{
203
162
if (!isset ($ data [$ key ])) {
204
163
throw static ::createEx ($ errMsg ?: "Array data must contains key ' $ key' " );
205
164
}
206
-
207
- return $ data [$ key ];
208
165
}
209
166
210
167
/**
211
168
* @param array $data
212
169
* @param array $keys
213
170
* @param string $errMsg
214
- *
215
- * @return array
216
171
*/
217
- public static function arrayHasKeys (array $ data , array $ keys , string $ errMsg = '' ): array
172
+ public static function arrayHasKeys (array $ data , array $ keys , string $ errMsg = '' ): void
218
173
{
219
- $ values = [];
220
174
foreach ($ keys as $ key ) {
221
175
if (!isset ($ data [$ key ])) {
222
176
throw static ::createEx ($ errMsg ?: "Array data must contains key ' $ key' " );
223
177
}
224
-
225
- $ values [$ key ] = $ data [$ key ];
226
178
}
227
-
228
- return $ values ;
229
179
}
230
180
231
181
/**
232
182
* @param array $data
233
183
* @param string $key
234
184
* @param string $errMsg
235
- *
236
- * @return mixed
237
185
*/
238
- public static function arrayHasNoEmptyKey (array $ data , string $ key , string $ errMsg = '' ): mixed
186
+ public static function arrayHasNoEmptyKey (array $ data , string $ key , string $ errMsg = '' ): void
239
187
{
240
188
if (!isset ($ data [$ key ]) || empty ($ data [$ key ])) {
241
189
throw static ::createEx ($ errMsg ?: "Data must contains key ' $ key' and value non-empty " );
242
190
}
243
-
244
- return $ data [$ key ];
245
191
}
246
192
193
+ // ------------- helper methods -------------
194
+
247
195
/**
248
196
* @param string $errMsg
249
197
*
250
- * @return RuntimeException|InvalidArgumentException
198
+ * @return RuntimeException
251
199
*/
252
200
public static function createEx (string $ errMsg ): RuntimeException
253
201
{
254
- return new InvalidArgumentException ($ errMsg );
202
+ return new self::$ exClass ($ errMsg );
203
+ }
204
+
205
+ /**
206
+ * @return string
207
+ */
208
+ public static function getExClass (): string
209
+ {
210
+ return self ::$ exClass ;
211
+ }
212
+
213
+ /**
214
+ * @param string $exClass
215
+ */
216
+ public static function setExClass (string $ exClass ): void
217
+ {
218
+ if ($ exClass ) {
219
+ self ::$ exClass = $ exClass ;
220
+ }
255
221
}
256
222
}
0 commit comments