Skip to content

Commit 767b59b

Browse files
committed
refactor!: update Cast handlers
1 parent 04dafb8 commit 767b59b

File tree

12 files changed

+128
-18
lines changed

12 files changed

+128
-18
lines changed

system/Entity/Cast/ArrayCast.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ class ArrayCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param string $value
2123
*/
22-
public static function get($value, array $params = []): array
24+
public static function fromDatabase($value, array $params = []): array
2325
{
2426
if (is_string($value) && (strpos($value, 'a:') === 0 || strpos($value, 's:') === 0)) {
2527
$value = unserialize($value);
@@ -30,8 +32,10 @@ public static function get($value, array $params = []): array
3032

3133
/**
3234
* {@inheritDoc}
35+
*
36+
* @param array $value
3337
*/
34-
public static function set($value, array $params = []): string
38+
public static function toDatabase($value, array $params = []): string
3539
{
3640
return serialize($value);
3741
}

system/Entity/Cast/BooleanCast.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,20 @@ class BooleanCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param bool|int $value
2123
*/
22-
public static function get($value, array $params = []): bool
24+
public static function set($value, array $params = []): bool
25+
{
26+
return (bool) $value;
27+
}
28+
29+
/**
30+
* {@inheritDoc}
31+
*
32+
* @param string $value
33+
*/
34+
public static function fromDatabase($value, array $params = []): bool
2335
{
2436
return (bool) $value;
2537
}

system/Entity/Cast/CSVCast.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,20 @@ class CSVCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param string $value
2123
*/
22-
public static function get($value, array $params = []): array
24+
public static function fromDatabase($value, array $params = []): array
2325
{
2426
return explode(',', $value);
2527
}
2628

2729
/**
2830
* {@inheritDoc}
31+
*
32+
* @param array $value
2933
*/
30-
public static function set($value, array $params = []): string
34+
public static function toDatabase($value, array $params = []): string
3135
{
3236
return implode(',', $value);
3337
}

system/Entity/Cast/DatetimeCast.php

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ class DatetimeCast extends BaseCast
2323
/**
2424
* {@inheritDoc}
2525
*
26+
* @param DateTime|float|int|string|Time $value
27+
*
2628
* @return Time
2729
*
2830
* @throws Exception
2931
*/
30-
public static function get($value, array $params = [])
32+
public static function set($value, array $params = [])
3133
{
3234
if ($value instanceof Time) {
3335
return $value;
@@ -47,4 +49,32 @@ public static function get($value, array $params = [])
4749

4850
return $value;
4951
}
52+
53+
/**
54+
* {@inheritDoc}
55+
*
56+
* @param string $value
57+
*
58+
* @return Time
59+
*
60+
* @throws Exception
61+
*/
62+
public static function fromDatabase($value, array $params = [])
63+
{
64+
if (is_string($value)) {
65+
return Time::parse($value);
66+
}
67+
68+
return $value;
69+
}
70+
71+
/**
72+
* {@inheritDoc}
73+
*
74+
* @param Time $value
75+
*/
76+
public static function toDatabase($value, array $params = []): string
77+
{
78+
return (string) $value;
79+
}
5080
}

system/Entity/Cast/FloatCast.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,20 @@ class FloatCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param float|int|string $value
2123
*/
22-
public static function get($value, array $params = []): float
24+
public static function set($value, array $params = []): float
25+
{
26+
return (float) $value;
27+
}
28+
29+
/**
30+
* {@inheritDoc}
31+
*
32+
* @param string $value
33+
*/
34+
public static function fromDatabase($value, array $params = []): float
2335
{
2436
return (float) $value;
2537
}

system/Entity/Cast/IntBoolCast.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,25 @@
1919
final class IntBoolCast extends BaseCast
2020
{
2121
/**
22-
* @param int $value
22+
* @param bool|int|string $value
2323
*/
24-
public static function get($value, array $params = []): bool
24+
public static function set($value, array $params = []): bool
2525
{
2626
return (bool) $value;
2727
}
2828

2929
/**
30-
* @param bool|int|string $value
30+
* @param int|string $value
31+
*/
32+
public static function fromDatabase($value, array $params = []): bool
33+
{
34+
return (bool) $value;
35+
}
36+
37+
/**
38+
* @param bool $value
3139
*/
32-
public static function set($value, array $params = []): int
40+
public static function toDatabase($value, array $params = []): int
3341
{
3442
return (int) $value;
3543
}

system/Entity/Cast/IntegerCast.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,20 @@ class IntegerCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param int|string $value
2123
*/
22-
public static function get($value, array $params = []): int
24+
public static function set($value, array $params = []): int
25+
{
26+
return (int) $value;
27+
}
28+
29+
/**
30+
* {@inheritDoc}
31+
*
32+
* @param string $value
33+
*/
34+
public static function fromDatabase($value, array $params = []): int
2335
{
2436
return (int) $value;
2537
}

system/Entity/Cast/JsonCast.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@ class JsonCast extends BaseCast
2222
{
2323
/**
2424
* {@inheritDoc}
25+
*
26+
* @param string $value
2527
*/
26-
public static function get($value, array $params = [])
28+
public static function fromDatabase($value, array $params = [])
2729
{
2830
$associative = in_array('array', $params, true);
2931

32+
// @TODO Can $value be null?
3033
$tmp = $value !== null ? ($associative ? [] : new stdClass()) : null;
3134

3235
if (function_exists('json_decode')
@@ -49,8 +52,10 @@ public static function get($value, array $params = [])
4952

5053
/**
5154
* {@inheritDoc}
55+
*
56+
* @param mixed $value
5257
*/
53-
public static function set($value, array $params = []): string
58+
public static function toDatabase($value, array $params = []): string
5459
{
5560
if (function_exists('json_encode')) {
5661
try {

system/Entity/Cast/ObjectCast.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,33 @@
1111

1212
namespace CodeIgniter\Entity\Cast;
1313

14+
use stdClass;
15+
1416
/**
1517
* Class ObjectCast
1618
*/
1719
class ObjectCast extends BaseCast
1820
{
1921
/**
2022
* {@inheritDoc}
23+
*
24+
* @param array $value
2125
*/
22-
public static function get($value, array $params = []): object
26+
public static function set($value, array $params = []): object
2327
{
2428
return (object) $value;
2529
}
30+
31+
/**
32+
* {@inheritDoc}
33+
*
34+
* @param stdClass $value
35+
*
36+
* @return array
37+
*/
38+
public static function toDatabase($value, array $params = [])
39+
{
40+
// @TODO How to implement?
41+
return (array) $value;
42+
}
2643
}

system/Entity/Cast/StringCast.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ class StringCast extends BaseCast
1818
{
1919
/**
2020
* {@inheritDoc}
21+
*
22+
* @param float|int|string|null $value
2123
*/
22-
public static function get($value, array $params = []): string
24+
public static function set($value, array $params = []): string
2325
{
2426
return (string) $value;
2527
}

system/Entity/Cast/TimestampCast.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ class TimestampCast extends BaseCast
2020
{
2121
/**
2222
* {@inheritDoc}
23+
*
24+
* @param string $value
2325
*/
24-
public static function get($value, array $params = [])
26+
public static function set($value, array $params = [])
2527
{
2628
$value = strtotime($value);
2729

system/Entity/Cast/URICast.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ class URICast extends BaseCast
2020
{
2121
/**
2222
* {@inheritDoc}
23+
*
24+
* @param string|URI $value
2325
*/
24-
public static function get($value, array $params = []): URI
26+
public static function set($value, array $params = []): URI
2527
{
2628
return $value instanceof URI ? $value : new URI($value);
2729
}

0 commit comments

Comments
 (0)