static function fromValue($value)
    {
        $key = self::getKey($value);

        return self::$instanceCache[static::class][$key]
            ?? (self::$instanceCache[static::class][$key] = new static($key, static::getValue($key)));
    }
static function fromValue($value)
    {
        $key = self::getKey($value);

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

@throws InvalidValueException if there is no such value
@return static
Get instance for the given value