FOF30\Update\Joomla::sanitiseVersion PHP Метод

sanitiseVersion() публичный Метод

Joomla! has a lousy track record in naming its alpha, beta and release candidate releases. The convention used seems to be "what the hell the current package maintainer thinks looks better". This method tries to figure out what was in the mind of the maintainer and translate the funky version number to an actual PHP-format version string.
public sanitiseVersion ( string $version ) : string
$version string The whatever-format version number
Результат string A standard formatted version number
    public function sanitiseVersion($version)
    {
        $test = strtolower($version);
        $alphaQualifierPosition = strpos($test, 'alpha-');
        $betaQualifierPosition = strpos($test, 'beta-');
        $betaQualifierPosition2 = strpos($test, '-beta');
        $rcQualifierPosition = strpos($test, 'rc-');
        $rcQualifierPosition2 = strpos($test, '-rc');
        $rcQualifierPosition3 = strpos($test, 'rc');
        $devQualifiedPosition = strpos($test, 'dev');
        if ($alphaQualifierPosition !== false) {
            $betaRevision = substr($test, $alphaQualifierPosition + 6);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $alphaQualifierPosition) . '.a' . $betaRevision;
        } elseif ($betaQualifierPosition !== false) {
            $betaRevision = substr($test, $betaQualifierPosition + 5);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $betaQualifierPosition) . '.b' . $betaRevision;
        } elseif ($betaQualifierPosition2 !== false) {
            $betaRevision = substr($test, $betaQualifierPosition2 + 5);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $betaQualifierPosition2) . '.b' . $betaRevision;
        } elseif ($rcQualifierPosition !== false) {
            $betaRevision = substr($test, $rcQualifierPosition + 5);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $rcQualifierPosition) . '.rc' . $betaRevision;
        } elseif ($rcQualifierPosition2 !== false) {
            $betaRevision = substr($test, $rcQualifierPosition2 + 3);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $rcQualifierPosition2) . '.rc' . $betaRevision;
        } elseif ($rcQualifierPosition3 !== false) {
            $betaRevision = substr($test, $rcQualifierPosition3 + 5);
            if (!$betaRevision) {
                $betaRevision = 1;
            }
            $test = substr($test, 0, $rcQualifierPosition3) . '.rc' . $betaRevision;
        } elseif ($devQualifiedPosition !== false) {
            $betaRevision = substr($test, $devQualifiedPosition + 6);
            if (!$betaRevision) {
                $betaRevision = '';
            }
            $test = substr($test, 0, $devQualifiedPosition) . '.dev' . $betaRevision;
        }
        return $test;
    }