EnumMethodsTrait.php 565 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Enum;
  4. trait EnumMethodsTrait
  5. {
  6. /**
  7. * @return list<string|int>
  8. */
  9. public static function names(): array
  10. {
  11. return array_column(self::cases(), 'name');
  12. }
  13. /**
  14. * @return list<string|int>
  15. */
  16. public static function values(): array
  17. {
  18. return array_column(self::cases(), 'value');
  19. }
  20. /**
  21. * @return array<string, string|int>
  22. */
  23. public static function array(): array
  24. {
  25. return array_combine(self::names(), self::values());
  26. }
  27. }