Skip to content

Commit ea357ba

Browse files
authored
Merge pull request #8124 from kenjis/fix-traditional-validation-rule-param-types-2
fix: remove traditional validation rule param types (2/2)
2 parents 4e57cee + 8a3a9a0 commit ea357ba

File tree

1 file changed

+84
-12
lines changed

1 file changed

+84
-12
lines changed

system/Validation/Rules.php

Lines changed: 84 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,30 @@ public function differs(?string $str, string $field, array $data): bool
3737

3838
/**
3939
* Equals the static value provided.
40+
*
41+
* @param string|null $str
4042
*/
41-
public function equals(?string $str, string $val): bool
43+
public function equals($str, string $val): bool
4244
{
45+
if (! is_string($str) && $str !== null) {
46+
$str = (string) $str;
47+
}
48+
4349
return $str === $val;
4450
}
4551

4652
/**
4753
* Returns true if $str is $val characters long.
4854
* $val = "5" (one) | "5,8,12" (multiple values)
55+
*
56+
* @param string|null $str
4957
*/
50-
public function exact_length(?string $str, string $val): bool
58+
public function exact_length($str, string $val): bool
5159
{
60+
if (! is_string($str) && $str !== null) {
61+
$str = (string) $str;
62+
}
63+
5264
$val = explode(',', $val);
5365

5466
foreach ($val as $tmp) {
@@ -62,17 +74,29 @@ public function exact_length(?string $str, string $val): bool
6274

6375
/**
6476
* Greater than
77+
*
78+
* @param string|null $str
6579
*/
66-
public function greater_than(?string $str, string $min): bool
80+
public function greater_than($str, string $min): bool
6781
{
82+
if (! is_string($str) && $str !== null) {
83+
$str = (string) $str;
84+
}
85+
6886
return is_numeric($str) && $str > $min;
6987
}
7088

7189
/**
7290
* Equal to or Greater than
91+
*
92+
* @param string|null $str
7393
*/
74-
public function greater_than_equal_to(?string $str, string $min): bool
94+
public function greater_than_equal_to($str, string $min): bool
7595
{
96+
if (! is_string($str) && $str !== null) {
97+
$str = (string) $str;
98+
}
99+
76100
return is_numeric($str) && $str >= $min;
77101
}
78102

@@ -84,9 +108,15 @@ public function greater_than_equal_to(?string $str, string $min): bool
84108
* Example:
85109
* is_not_unique[table.field,where_field,where_value]
86110
* is_not_unique[menu.id,active,1]
111+
*
112+
* @param string|null $str
87113
*/
88-
public function is_not_unique(?string $str, string $field, array $data): bool
114+
public function is_not_unique($str, string $field, array $data): bool
89115
{
116+
if (! is_string($str) && $str !== null) {
117+
$str = (string) $str;
118+
}
119+
90120
// Grab any data for exclusion of a single row.
91121
[$field, $whereField, $whereValue] = array_pad(
92122
explode(',', $field),
@@ -115,9 +145,15 @@ public function is_not_unique(?string $str, string $field, array $data): bool
115145

116146
/**
117147
* Value should be within an array of values
148+
*
149+
* @param string|null $value
118150
*/
119-
public function in_list(?string $value, string $list): bool
151+
public function in_list($value, string $list): bool
120152
{
153+
if (! is_string($value) && $value !== null) {
154+
$value = (string) $value;
155+
}
156+
121157
$list = array_map('trim', explode(',', $list));
122158

123159
return in_array($value, $list, true);
@@ -166,17 +202,29 @@ public function is_unique($str, string $field, array $data): bool
166202

167203
/**
168204
* Less than
205+
*
206+
* @param string|null $str
169207
*/
170-
public function less_than(?string $str, string $max): bool
208+
public function less_than($str, string $max): bool
171209
{
210+
if (! is_string($str) && $str !== null) {
211+
$str = (string) $str;
212+
}
213+
172214
return is_numeric($str) && $str < $max;
173215
}
174216

175217
/**
176218
* Equal to or Less than
219+
*
220+
* @param string|null $str
177221
*/
178-
public function less_than_equal_to(?string $str, string $max): bool
222+
public function less_than_equal_to($str, string $max): bool
179223
{
224+
if (! is_string($str) && $str !== null) {
225+
$str = (string) $str;
226+
}
227+
180228
return is_numeric($str) && $str <= $max;
181229
}
182230

@@ -196,33 +244,57 @@ public function matches(?string $str, string $field, array $data): bool
196244

197245
/**
198246
* Returns true if $str is $val or fewer characters in length.
247+
*
248+
* @param string|null $str
199249
*/
200-
public function max_length(?string $str, string $val): bool
250+
public function max_length($str, string $val): bool
201251
{
252+
if (! is_string($str) && $str !== null) {
253+
$str = (string) $str;
254+
}
255+
202256
return is_numeric($val) && $val >= mb_strlen($str ?? '');
203257
}
204258

205259
/**
206260
* Returns true if $str is at least $val length.
261+
*
262+
* @param string|null $str
207263
*/
208-
public function min_length(?string $str, string $val): bool
264+
public function min_length($str, string $val): bool
209265
{
266+
if (! is_string($str) && $str !== null) {
267+
$str = (string) $str;
268+
}
269+
210270
return is_numeric($val) && $val <= mb_strlen($str ?? '');
211271
}
212272

213273
/**
214274
* Does not equal the static value provided.
275+
*
276+
* @param string|null $str
215277
*/
216-
public function not_equals(?string $str, string $val): bool
278+
public function not_equals($str, string $val): bool
217279
{
280+
if (! is_string($str) && $str !== null) {
281+
$str = (string) $str;
282+
}
283+
218284
return $str !== $val;
219285
}
220286

221287
/**
222288
* Value should not be within an array of values.
289+
*
290+
* @param string|null $value
223291
*/
224-
public function not_in_list(?string $value, string $list): bool
292+
public function not_in_list($value, string $list): bool
225293
{
294+
if (! is_string($value) && $value !== null) {
295+
$value = (string) $value;
296+
}
297+
226298
return ! $this->in_list($value, $list);
227299
}
228300

0 commit comments

Comments
 (0)