Airship\Engine\Continuum\Version::getGroup PHP Méthode

getGroup() public static méthode

Get the value within a group (i.e. 1.0.3 => 1000300)
public static getGroup ( integer $value, integer $group = self::GROUP_INCREMENT ) : integer
$value integer An expanded version
$group integer
Résultat integer
    public static function getGroup(int $value, int $group = self::GROUP_INCREMENT) : int
    {
        switch ($group) {
            // [W...W]XXYYZZ
            case self::GROUP_MAJOR:
                $left = $value - $value % self::GROUP_MAJOR;
                return intdiv($left, self::GROUP_MAJOR);
                // W...W[XX]YYZZ
            // W...W[XX]YYZZ
            case self::GROUP_MINOR:
                $left = $value - $value % self::GROUP_MINOR;
                $left %= self::GROUP_MAJOR;
                return intdiv($left, self::GROUP_MINOR);
                // W...WXX[YY]ZZ
            // W...WXX[YY]ZZ
            case self::GROUP_PATCH:
                $left = $value - $value % self::GROUP_PATCH;
                $left %= self::GROUP_MINOR;
                return intdiv($left, self::GROUP_PATCH);
            default:
                throw new \InvalidArgumentException(\__('%s: $group must be a constant', 'default', __METHOD__));
        }
    }

Usage Example

Exemple #1
0
 /**
  *  This is mostly to catch regressions.
  */
 public function testGroupArithmetic()
 {
     $t = \Airship\expand_version('3.45.67');
     $this->assertEquals(Version::getGroup($t, Version::GROUP_MAJOR), 3);
     $this->assertEquals(Version::getGroup($t, Version::GROUP_MINOR), 45);
     $this->assertEquals(Version::getGroup($t, Version::GROUP_PATCH), 67);
     // Let's make sure large major versions don't break
     $u = \Airship\expand_version('125.0.0');
     $this->assertEquals(Version::getGroup($u, Version::GROUP_MAJOR), 125);
     $this->assertEquals(Version::getGroup($u, Version::GROUP_MINOR), 0);
     $this->assertEquals(Version::getGroup($u, Version::GROUP_PATCH), 0);
 }