Skip to content

Commit 1b613dc

Browse files
committed
refactor: fix PHPStan types
1 parent 694c4b5 commit 1b613dc

File tree

12 files changed

+66
-54
lines changed

12 files changed

+66
-54
lines changed

system/Database/DataConverter/Cast/ArrayCast.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@
1414
/**
1515
* Class ArrayCast
1616
*
17-
* DB column: string <--> PHP: array
17+
* PHP: array <--> DB column: string
18+
*
19+
* @extends BaseCast<mixed[], string, string>
1820
*/
1921
class ArrayCast extends BaseCast implements CastInterface
2022
{
21-
/**
22-
* {@inheritDoc}
23-
*/
24-
public static function fromDatabase($value, array $params = []): array
23+
public static function fromDatabase(mixed $value, array $params = []): array
2524
{
2625
if (! is_string($value)) {
2726
self::invalidTypeValueError($value);
@@ -34,10 +33,7 @@ public static function fromDatabase($value, array $params = []): array
3433
return (array) $value;
3534
}
3635

37-
/**
38-
* {@inheritDoc}
39-
*/
40-
public static function toDatabase($value, array $params = []): string
36+
public static function toDatabase(mixed $value, array $params = []): string
4137
{
4238
return serialize($value);
4339
}

system/Database/DataConverter/Cast/BaseCast.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,26 @@
1414
use TypeError;
1515

1616
/**
17-
* Class BaseCast
17+
* @template TPhpValue PHP data type
18+
* @template TToDb Data type to pass to database driver
19+
* @template TDbColumn Data type from database driver
20+
*
21+
* @implements CastInterface<TPhpValue, TToDb, TDbColumn>
1822
*/
1923
abstract class BaseCast implements CastInterface
2024
{
21-
/**
22-
* {@inheritDoc}
23-
*/
24-
public static function fromDatabase($value, array $params = [])
25+
public static function fromDatabase(mixed $value, array $params = []): mixed
2526
{
2627
return $value;
2728
}
2829

29-
/**
30-
* {@inheritDoc}
31-
*/
32-
public static function toDatabase($value, array $params = [])
30+
public static function toDatabase(mixed $value, array $params = []): mixed
3331
{
3432
return $value;
3533
}
3634

3735
/**
38-
* Throws TypeError
36+
* @throws TypeError
3937
*/
4038
protected static function invalidTypeValueError(mixed $value): never
4139
{

system/Database/DataConverter/Cast/BooleanCast.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
/**
1515
* Class BooleanCast
1616
*
17-
* DB column: bool|int(0/1) <--> PHP: bool
17+
* PHP: bool <--> DB column: bool|int(0/1)
18+
*
19+
* @extends BaseCast<bool, bool, string|int>
1820
*/
1921
class BooleanCast extends BaseCast
2022
{
2123
/**
2224
* {@inheritDoc}
2325
*/
24-
public static function fromDatabase($value, array $params = []): bool
26+
public static function fromDatabase(mixed $value, array $params = []): bool
2527
{
2628
// For PostgreSQL
2729
if ($value === 't') {

system/Database/DataConverter/Cast/CSVCast.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
/**
1515
* Class CSVCast
1616
*
17-
* DB column: string <--> PHP: array
17+
* PHP: array <--> DB column: string
18+
*
19+
* @extends BaseCast<array, string, string>
1820
*/
1921
class CSVCast extends BaseCast
2022
{
2123
/**
2224
* {@inheritDoc}
2325
*/
24-
public static function fromDatabase($value, array $params = []): array
26+
public static function fromDatabase(mixed $value, array $params = []): array
2527
{
2628
if (! is_string($value)) {
2729
self::invalidTypeValueError($value);
@@ -33,7 +35,7 @@ public static function fromDatabase($value, array $params = []): array
3335
/**
3436
* {@inheritDoc}
3537
*/
36-
public static function toDatabase($value, array $params = []): string
38+
public static function toDatabase(mixed $value, array $params = []): string
3739
{
3840
if (! is_array($value)) {
3941
self::invalidTypeValueError($value);

system/Database/DataConverter/Cast/CastInterface.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,29 @@
1212
namespace CodeIgniter\Database\DataConverter\Cast;
1313

1414
/**
15-
* Interface CastInterface
15+
* @template TPhpValue PHP data type
16+
* @template TToDb Data type to pass to database driver
17+
* @template TDbColumn Data type from database driver
1618
*/
1719
interface CastInterface
1820
{
1921
/**
2022
* Takes value from database, returns its value for PHP.
2123
*
22-
* @param bool|float|int|string|null $value Data
23-
* @param array $params Additional param
24+
* @param TDbColumn $value Data from database driver
25+
* @param list<string> $params Additional param
2426
*
25-
* @return array|bool|float|int|object|string|null
27+
* @return TPhpValue
2628
*/
27-
public static function fromDatabase($value, array $params = []);
29+
public static function fromDatabase(mixed $value, array $params = []): mixed;
2830

2931
/**
3032
* Takes the PHP value, returns its value for database.
3133
*
32-
* @param array|bool|float|int|object|string|null $value Data
33-
* @param array $params Additional param
34+
* @param TPhpValue $value PHP data
35+
* @param list<string> $params Additional param
3436
*
35-
* @return bool|float|int|string|null
37+
* @return TToDb Data to pass to database driver
3638
*/
37-
public static function toDatabase($value, array $params = []);
39+
public static function toDatabase(mixed $value, array $params = []): mixed;
3840
}

system/Database/DataConverter/Cast/DatetimeCast.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
/**
1818
* Class DatetimeCast
1919
*
20-
* DB column: datetime <--> PHP: Time
20+
* PHP: Time <--> DB column: datetime
21+
*
22+
* @extends BaseCast<Time, string, string>
2123
*/
2224
class DatetimeCast extends BaseCast
2325
{
@@ -26,7 +28,7 @@ class DatetimeCast extends BaseCast
2628
*
2729
* @throws Exception
2830
*/
29-
public static function fromDatabase($value, array $params = []): Time
31+
public static function fromDatabase(mixed $value, array $params = []): Time
3032
{
3133
if (! is_string($value)) {
3234
self::invalidTypeValueError($value);
@@ -38,7 +40,7 @@ public static function fromDatabase($value, array $params = []): Time
3840
/**
3941
* {@inheritDoc}
4042
*/
41-
public static function toDatabase($value, array $params = []): string
43+
public static function toDatabase(mixed $value, array $params = []): string
4244
{
4345
if (! $value instanceof Time) {
4446
self::invalidTypeValueError($value);

system/Database/DataConverter/Cast/FloatCast.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
/**
1515
* Class FloatCast
1616
*
17-
* DB column: float <--> PHP: float
17+
* PHP: float <--> DB column: float
18+
*
19+
* @extends BaseCast<float, float, float|string>
1820
*/
1921
class FloatCast extends BaseCast
2022
{
2123
/**
2224
* {@inheritDoc}
2325
*/
24-
public static function fromDatabase($value, array $params = []): float
26+
public static function fromDatabase(mixed $value, array $params = []): float
2527
{
2628
return (float) $value;
2729
}

system/Database/DataConverter/Cast/IntBoolCast.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
/**
1515
* Int Bool Cast
1616
*
17-
* DB column: int(0/1) <--> PHP: bool
17+
* PHP: bool DB <--> column: int(0/1)
18+
*
19+
* @extends BaseCast<bool, int, int|string>
1820
*/
1921
final class IntBoolCast extends BaseCast
2022
{
2123
/**
2224
* {@inheritDoc}
2325
*/
24-
public static function fromDatabase($value, array $params = []): bool
26+
public static function fromDatabase(mixed $value, array $params = []): bool
2527
{
2628
if (! is_int($value) && ! is_string($value)) {
2729
self::invalidTypeValueError($value);
@@ -33,7 +35,7 @@ public static function fromDatabase($value, array $params = []): bool
3335
/**
3436
* {@inheritDoc}
3537
*/
36-
public static function toDatabase($value, array $params = []): int
38+
public static function toDatabase(mixed $value, array $params = []): int
3739
{
3840
if (! is_bool($value)) {
3941
self::invalidTypeValueError($value);

system/Database/DataConverter/Cast/IntegerCast.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
/**
1515
* Class IntegerCast
1616
*
17-
* DB column: int <--> PHP: int
17+
* PHP: int <--> DB column: int
18+
*
19+
* @extends BaseCast<int, int, int|string>
1820
*/
1921
class IntegerCast extends BaseCast
2022
{
2123
/**
2224
* {@inheritDoc}
2325
*/
24-
public static function fromDatabase($value, array $params = []): int
26+
public static function fromDatabase(mixed $value, array $params = []): int
2527
{
2628
if (! is_string($value) && ! is_int($value)) {
2729
self::invalidTypeValueError($value);

system/Database/DataConverter/Cast/JsonCast.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818
/**
1919
* Class JsonCast
2020
*
21-
* DB column: string <--> PHP: array|stdClass
21+
* PHP: array|stdClass <--> DB column: string
22+
*
23+
* @extends BaseCast<array|stdClass, string, string>
2224
*/
2325
class JsonCast extends BaseCast
2426
{
2527
/**
2628
* {@inheritDoc}
2729
*/
28-
public static function fromDatabase($value, array $params = [])
30+
public static function fromDatabase(mixed $value, array $params = []): array|stdClass
2931
{
3032
if (! is_string($value)) {
3133
self::invalidTypeValueError($value);
@@ -51,10 +53,8 @@ public static function fromDatabase($value, array $params = [])
5153

5254
/**
5355
* {@inheritDoc}
54-
*
55-
* @param mixed $value
5656
*/
57-
public static function toDatabase($value, array $params = []): string
57+
public static function toDatabase(mixed $value, array $params = []): string
5858
{
5959
try {
6060
$output = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);

system/Database/DataConverter/Cast/TimestampCast.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@
1616
/**
1717
* Class TimestampCast
1818
*
19-
* DB column: timestamp <--> PHP: Time
19+
* PHP: Time <--> DB column: timestamp
20+
*
21+
* @extends BaseCast<Time, int, int|string>
2022
*/
2123
class TimestampCast extends BaseCast
2224
{
2325
/**
2426
* {@inheritDoc}
2527
*/
26-
public static function fromDatabase($value, array $params = []): Time
28+
public static function fromDatabase(mixed $value, array $params = []): Time
2729
{
2830
if (! is_int($value) && ! is_string($value)) {
2931
self::invalidTypeValueError($value);
@@ -35,7 +37,7 @@ public static function fromDatabase($value, array $params = []): Time
3537
/**
3638
* {@inheritDoc}
3739
*/
38-
public static function toDatabase($value, array $params = []): int
40+
public static function toDatabase(mixed $value, array $params = []): int
3941
{
4042
if (! $value instanceof Time) {
4143
self::invalidTypeValueError($value);

system/Database/DataConverter/Cast/URICast.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@
1616
/**
1717
* Class URICast
1818
*
19-
* DB column: string <--> PHP: URI
19+
* PHP: URI <--> DB column: string
20+
*
21+
* @extends BaseCast<URI, string, string>
2022
*/
2123
class URICast extends BaseCast
2224
{
2325
/**
2426
* {@inheritDoc}
2527
*/
26-
public static function fromDatabase($value, array $params = []): URI
28+
public static function fromDatabase(mixed $value, array $params = []): URI
2729
{
2830
if (! is_string($value)) {
2931
self::invalidTypeValueError($value);
@@ -35,7 +37,7 @@ public static function fromDatabase($value, array $params = []): URI
3537
/**
3638
* {@inheritDoc}
3739
*/
38-
public static function toDatabase($value, array $params = []): string
40+
public static function toDatabase(mixed $value, array $params = []): string
3941
{
4042
if (! $value instanceof URI) {
4143
self::invalidTypeValueError($value);

0 commit comments

Comments
 (0)