Skip to content

Commit 01dfe21

Browse files
authored
Add enum filter implementation (#11)
* Add enum filter implementation * class of object in InvalidTypeException instead of "object"
1 parent 0dc2de8 commit 01dfe21

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Exception/Generic/InvalidTypeException.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function __construct($providedValue, string $propertyName, $expectedType)
3232
'Invalid type for %s. Requires %s, got %s',
3333
$propertyName,
3434
is_array($expectedType) ? '[' . join(', ', $expectedType) . ']' : $expectedType,
35-
gettype($providedValue)),
35+
is_object($providedValue) ? get_class($providedValue) : gettype($providedValue)),
3636
$propertyName,
3737
$providedValue
3838
);

src/Filter/Enum.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types = 1);
4+
5+
namespace PHPModelGenerator\Filter;
6+
7+
use BackedEnum;
8+
use UnitEnum;
9+
10+
class Enum
11+
{
12+
public static function filter($value, $options): ?UnitEnum
13+
{
14+
return $value === null ? null : $options['fqcn']::from($value);
15+
}
16+
17+
public static function serialize(?UnitEnum $value): mixed
18+
{
19+
return $value instanceof BackedEnum ? $value?->value : $value?->value();
20+
}
21+
}

0 commit comments

Comments
 (0)