From 837b936f0d88515dc459cfc0610b28d606a9349f Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 21 May 2022 22:16:25 +0900 Subject: [PATCH] feat: DTO\Caster\BackedEnumCaster --- hwe/sammo/DTO/Caster/BackedEnumCaster.php | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 hwe/sammo/DTO/Caster/BackedEnumCaster.php diff --git a/hwe/sammo/DTO/Caster/BackedEnumCaster.php b/hwe/sammo/DTO/Caster/BackedEnumCaster.php new file mode 100644 index 00000000..d8c9b04e --- /dev/null +++ b/hwe/sammo/DTO/Caster/BackedEnumCaster.php @@ -0,0 +1,27 @@ +backedEnumFrom = $reflector->getMethod('from'); + } + + public function cast(mixed $value): \BackedEnum + { + if(!is_string($value) && !is_int($value)){ + throw new \Exception('BackedEnumCaster only accepts string|int'); + } + + return $this->backedEnumFrom->invoke(null, $value); + } +} \ No newline at end of file