EnumHelper.php 493 B

12345678910111213141516171819202122
  1. <?php
  2. namespace App\Traits;
  3. trait EnumHelper
  4. {
  5. public static function isValid(string $value): bool
  6. {
  7. return in_array($value, self::toArray());
  8. }
  9. public static function toArray(): array
  10. {
  11. return array_column(self::cases(), 'value');
  12. }
  13. public static function fromString(string $value): ?static
  14. {
  15. $cases = array_combine(array_map(fn($case) => $case->value, self::cases()), self::cases());
  16. return $cases[$value] ?? null;
  17. }
  18. }