Skip to content

Commit 7ce337e

Browse files
[12.x] Refine type hinting for condition rules (#56420)
* refine type hinting for condition in RequiredIf rule * refine type hinting for callback parameters in validation rules * Formatting
1 parent c781ff1 commit 7ce337e

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

src/Illuminate/Validation/Rule.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public static function notIn($values)
144144
/**
145145
* Get a required_if rule builder instance.
146146
*
147-
* @param callable|bool $callback
147+
* @param (\Closure(): bool)|bool $callback
148148
* @return \Illuminate\Validation\Rules\RequiredIf
149149
*/
150150
public static function requiredIf($callback)
@@ -155,7 +155,7 @@ public static function requiredIf($callback)
155155
/**
156156
* Get a exclude_if rule builder instance.
157157
*
158-
* @param callable|bool $callback
158+
* @param (\Closure(): bool)|bool $callback
159159
* @return \Illuminate\Validation\Rules\ExcludeIf
160160
*/
161161
public static function excludeIf($callback)
@@ -166,7 +166,7 @@ public static function excludeIf($callback)
166166
/**
167167
* Get a prohibited_if rule builder instance.
168168
*
169-
* @param callable|bool $callback
169+
* @param (\Closure(): bool)|bool $callback
170170
* @return \Illuminate\Validation\Rules\ProhibitedIf
171171
*/
172172
public static function prohibitedIf($callback)

src/Illuminate/Validation/Rules/ExcludeIf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ class ExcludeIf implements Stringable
1111
/**
1212
* The condition that validates the attribute.
1313
*
14-
* @var \Closure|bool
14+
* @var (\Closure(): bool)|bool
1515
*/
1616
public $condition;
1717

1818
/**
1919
* Create a new exclude validation rule based on a condition.
2020
*
21-
* @param \Closure|bool $condition
21+
* @param (\Closure(): bool)|bool $condition
2222
*
2323
* @throws \InvalidArgumentException
2424
*/

src/Illuminate/Validation/Rules/ProhibitedIf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ class ProhibitedIf implements Stringable
1111
/**
1212
* The condition that validates the attribute.
1313
*
14-
* @var \Closure|bool
14+
* @var (\Closure(): bool)|bool
1515
*/
1616
public $condition;
1717

1818
/**
1919
* Create a new prohibited validation rule based on a condition.
2020
*
21-
* @param \Closure|bool $condition
21+
* @param (\Closure(): bool)|bool $condition
2222
* @return void
2323
*
2424
* @throws \InvalidArgumentException

src/Illuminate/Validation/Rules/RequiredIf.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Illuminate\Validation\Rules;
44

5+
use Closure;
56
use InvalidArgumentException;
67
use Stringable;
78

@@ -10,18 +11,18 @@ class RequiredIf implements Stringable
1011
/**
1112
* The condition that validates the attribute.
1213
*
13-
* @var callable|bool
14+
* @var (\Closure(): bool)|bool
1415
*/
1516
public $condition;
1617

1718
/**
1819
* Create a new required validation rule based on a condition.
1920
*
20-
* @param callable|bool $condition
21+
* @param (\Closure(): bool)|bool $condition
2122
*/
2223
public function __construct($condition)
2324
{
24-
if (! is_string($condition)) {
25+
if ($condition instanceof Closure || is_bool($condition)) {
2526
$this->condition = $condition;
2627
} else {
2728
throw new InvalidArgumentException('The provided condition must be a callable or boolean.');

0 commit comments

Comments
 (0)