*/ 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; } /** * @var string[] * @phpstan-var list */ private array $aliases; /** * @param string[] $aliases * @phpstan-param list $aliases */ private function __construct(string $enumName, array $aliases){ $this->Enum___construct($enumName); $this->aliases = $aliases; } /** * @return string[] * @phpstan-return list */ public function getAliases() : array{ return $this->aliases; } }