public static function getOlderSupportedVersion()

in app/classes/ReleaseInsights/ESR.php [48:87]


    public static function getOlderSupportedVersion(int $version): ?string
    {
        $current_ESR = self::getVersion($version);

        // We can't find a matching ESR, return now to avoid PHP warnings
        if (is_null($current_ESR)) {
            return null;
        }

        $current_ESR = Version::getMajor($current_ESR);

        // We don't have an older ESR than the first ESR
        if (self::$esr_releases[0] == $current_ESR) {
            return null;
        }

        $previous_ESR = self::$esr_releases[
            array_search(
                $current_ESR,
                self::$esr_releases
            )-1
        ];

        /*
            1. We support 2 ESR branches for 3 releases only since Version 68.
            2. Before that, we had 2 cycles only with 2 ESR branches as cycles lasted longer
            3. We extended the 115 ESR cycle because of a still large Windows 7/8.1 population
        */
        $esr_minor_releases = match(true) {
                $version < 78        => 1,
                $current_ESR === 128 => 11,
                default              => 2,
        };

        if (($version - $current_ESR) > $esr_minor_releases) {
            return null;
        }

        return (string) $previous_ESR . '.' . ($version - $previous_ESR) . '.0';
    }