static function fromKey(string $key)
    {
        return self::$instanceCache[static::class][$key]
            ?? (self::$instanceCache[static::class][$key] = new static($key, static::getValue($key)));
    }
static function fromKey(string $key)
    {
        return self::$instanceCache[static::class][$key]
            ?? (self::$instanceCache[static::class][$key] = new static($key, static::getValue($key)));
    }
static function fromKey ( string $ key ) { return self :: $ instanceCache [ static :: class ] [ $ key ] ?? ( self :: $ instanceCache [ static :: class ] [ $ key ] = new static ( $ key , static :: getValue ( $ key ) ) ) ; }
Get instance for the given key

@throws InvalidKeyException if there is no such key
@return static
Get instance for the given key