'通用枚举', self::SYSTEM => '系统枚举', self::DEV => '开发枚举', self::MONITOR => '监控枚举', self::BUSINESS => '业务枚举', }; } /** * 获取颜色标识 */ public function color(): string { return match ($this) { self::COMMON => 'blue', self::SYSTEM => 'green', self::DEV => 'orange', self::MONITOR => 'red', self::BUSINESS => 'purple', }; } /** * 获取分类对应的目录路径 */ public function directory(): string { return match ($this) { self::COMMON => 'common', self::SYSTEM => 'system', self::DEV => 'dev', self::MONITOR => 'monitor', self::BUSINESS => 'business', }; } /** * 获取所有分类的映射数组 */ public static function getCategoryMap(): array { $map = []; foreach (self::cases() as $case) { $map[$case->value] = [ 'code' => $case->value, 'label' => $case->label(), 'color' => $case->color(), 'directory' => $case->directory(), ]; } return $map; } /** * 根据目录名称获取分类枚举 */ public static function fromDirectory(string $directory): ?self { foreach (self::cases() as $case) { if ($case->directory() === $directory) { return $case; } } return null; } /** * 检查目录是否为有效的分类 */ public static function isValidDirectory(string $directory): bool { return self::fromDirectory($directory) !== null; } }