*/ private static array $aliasMap = []; protected static function register(self $member) : void{ self::Enum_register($member); foreach($member->getAliases() as $alias){ self::$aliasMap[mb_strtolower($alias)] = $member; } } public static function fromString(string $name) : ?self{ self::checkInit(); return self::$aliasMap[mb_strtolower($name)] ?? null; } /** * @param string[] $aliases * @phpstan-param list $aliases */ private function __construct( string $enumName, private array $aliases ){ $this->Enum___construct($enumName); } /** * @return string[] * @phpstan-return list */ public function getAliases() : array{ return $this->aliases; } }