EnumMethodsTrait.php 563 B

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