Skip to content

Commit 22e85eb

Browse files
nunomadurosupun-ioStyleCIBot
authored
[9.x] Improves $request->enum() type API (#44370)
* improve input enum method * type test for input enum method * Apply fixes from StyleCI * Fixes types tests and improves wording of generics Co-authored-by: SupunKavinda <[email protected]> Co-authored-by: StyleCI Bot <[email protected]>
1 parent 678da30 commit 22e85eb

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/Illuminate/Http/Concerns/InteractsWithInput.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -372,9 +372,11 @@ public function date($key, $format = null, $tz = null)
372372
/**
373373
* Retrieve input from the request as an enum.
374374
*
375+
* @template TEnum
376+
*
375377
* @param string $key
376-
* @param string $enumClass
377-
* @return mixed|null
378+
* @param class-string<TEnum> $enumClass
379+
* @return TEnum|null
378380
*/
379381
public function enum($key, $enumClass)
380382
{

types/Http/Request.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
use Illuminate\Http\Request;
4+
use function PHPStan\Testing\assertType;
5+
6+
class TestEnum
7+
{
8+
}
9+
10+
$request = Request::create('/', 'GET', [
11+
'key' => 'test',
12+
]);
13+
14+
assertType('TestEnum|null', $request->enum('key', TestEnum::class));

0 commit comments

Comments
 (0)