Code Duplication    Length = 11-11 lines in 3 locations

src/GUID.php 3 locations

@@ 49-59 (lines=11) @@
46
        return new GUID($binStr);
47
    }
48
49
    public static function fromHexString(string $hexStr, int $expectedLength = self::DEFAULT_GUID_SIZE): GUID
50
    {
51
        if (0 === \preg_match('/^(([0-9A-F]{2})+|([0-9a-f]{2})+)$/', $hexStr)) {
52
            throw new UnserializationError('Invalid hexadecimal string');
53
        }
54
55
        return self::fromBinaryString(
56
            \hex2bin($hexStr),
57
            $expectedLength
58
        );
59
    }
60
61
    public static function fromBase64String(string $b64Str, int $expectedLength = self::DEFAULT_GUID_SIZE): GUID
62
    {
@@ 61-71 (lines=11) @@
58
        );
59
    }
60
61
    public static function fromBase64String(string $b64Str, int $expectedLength = self::DEFAULT_GUID_SIZE): GUID
62
    {
63
        if (0 === \preg_match('#^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$#', $b64Str)) {
64
            throw new UnserializationError('Invalid base64 string');
65
        }
66
67
        return self::fromBinaryString(
68
            \base64_decode($b64Str, true),
69
            $expectedLength
70
        );
71
    }
72
73
    public static function fromBase64UrlString(string $b64Str, int $expectedLength = self::DEFAULT_GUID_SIZE): GUID
74
    {
@@ 73-83 (lines=11) @@
70
        );
71
    }
72
73
    public static function fromBase64UrlString(string $b64Str, int $expectedLength = self::DEFAULT_GUID_SIZE): GUID
74
    {
75
        if (0 === \preg_match('#^(?:[A-Za-z0-9\-_]{4})*(?:[A-Za-z0-9\-_]{2}\.\.|[A-Za-z0-9\-_]{3}\.)?$#', $b64Str)) {
76
            throw new UnserializationError('Invalid base64 string');
77
        }
78
79
        return self::fromBase64String(
80
            \strtr($b64Str, '-_.', '+/='),
81
            $expectedLength
82
        );
83
    }
84
85
    public function asBinaryString(): string
86
    {