Code Duplication    Length = 30-30 lines in 2 locations

lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php 1 location

@@ 89-118 (lines=30) @@
86
    /**
87
     * {@inheritdoc}
88
     */
89
    public function createDatabasePlatformForVersion($version)
90
    {
91
        if ( ! preg_match(
92
            '/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+)(?:\.(?P<build>\d+))?)?)?/',
93
            $version,
94
            $versionParts
95
        )) {
96
            throw DBALException::invalidPlatformVersionSpecified(
97
                $version,
98
                '<major_version>.<minor_version>.<patch_version>.<build_version>'
99
            );
100
        }
101
102
        $majorVersion = $versionParts['major'];
103
        $minorVersion = isset($versionParts['minor']) ? $versionParts['minor'] : 0;
104
        $patchVersion = isset($versionParts['patch']) ? $versionParts['patch'] : 0;
105
        $buildVersion = isset($versionParts['build']) ? $versionParts['build'] : 0;
106
        $version      = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;
107
108
        switch(true) {
109
            case version_compare($version, '16', '>='):
110
                return new SQLAnywhere16Platform();
111
            case version_compare($version, '12', '>='):
112
                return new SQLAnywhere12Platform();
113
            case version_compare($version, '11', '>='):
114
                return new SQLAnywhere11Platform();
115
            default:
116
                return new SQLAnywherePlatform();
117
        }
118
    }
119
120
    /**
121
     * {@inheritdoc}

lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php 1 location

@@ 43-72 (lines=30) @@
40
    /**
41
     * {@inheritdoc}
42
     */
43
    public function createDatabasePlatformForVersion($version)
44
    {
45
        if ( ! preg_match(
46
            '/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+)(?:\.(?P<build>\d+))?)?)?/',
47
            $version,
48
            $versionParts
49
        )) {
50
            throw DBALException::invalidPlatformVersionSpecified(
51
                $version,
52
                '<major_version>.<minor_version>.<patch_version>.<build_version>'
53
            );
54
        }
55
56
        $majorVersion = $versionParts['major'];
57
        $minorVersion = isset($versionParts['minor']) ? $versionParts['minor'] : 0;
58
        $patchVersion = isset($versionParts['patch']) ? $versionParts['patch'] : 0;
59
        $buildVersion = isset($versionParts['build']) ? $versionParts['build'] : 0;
60
        $version      = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;
61
62
        switch(true) {
63
            case version_compare($version, '11.00.2100', '>='):
64
                return new SQLServer2012Platform();
65
            case version_compare($version, '10.00.1600', '>='):
66
                return new SQLServer2008Platform();
67
            case version_compare($version, '9.00.1399', '>='):
68
                return new SQLServer2005Platform();
69
            default:
70
                return new SQLServerPlatform();
71
        }
72
    }
73
74
    /**
75
     * {@inheritdoc}