Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. VersionConstraintValue.php

class VersionConstraintValue

Hierarchy

  • class \PharIo\Version\VersionConstraintValue

Expanded class hierarchy of VersionConstraintValue

File

vendor/phar-io/version/src/VersionConstraintValue.php, line 4

Namespace

PharIo\Version
View source
class VersionConstraintValue {
    
    /** @var VersionNumber */
    private $major;
    
    /** @var VersionNumber */
    private $minor;
    
    /** @var VersionNumber */
    private $patch;
    
    /** @var string */
    private $label = '';
    
    /** @var string */
    private $buildMetaData = '';
    
    /** @var string */
    private $versionString = '';
    public function __construct(string $versionString) {
        $this->versionString = $versionString;
        $this->parseVersion($versionString);
    }
    public function getLabel() : string {
        return $this->label;
    }
    public function getBuildMetaData() : string {
        return $this->buildMetaData;
    }
    public function getVersionString() : string {
        return $this->versionString;
    }
    public function getMajor() : VersionNumber {
        return $this->major;
    }
    public function getMinor() : VersionNumber {
        return $this->minor;
    }
    public function getPatch() : VersionNumber {
        return $this->patch;
    }
    private function parseVersion(string $versionString) : void {
        $this->extractBuildMetaData($versionString);
        $this->extractLabel($versionString);
        $this->stripPotentialVPrefix($versionString);
        $versionSegments = \explode('.', $versionString);
        $this->major = new VersionNumber(\is_numeric($versionSegments[0]) ? (int) $versionSegments[0] : null);
        $minorValue = isset($versionSegments[1]) && \is_numeric($versionSegments[1]) ? (int) $versionSegments[1] : null;
        $patchValue = isset($versionSegments[2]) && \is_numeric($versionSegments[2]) ? (int) $versionSegments[2] : null;
        $this->minor = new VersionNumber($minorValue);
        $this->patch = new VersionNumber($patchValue);
    }
    private function extractBuildMetaData(string &$versionString) : void {
        if (\preg_match('/\\+(.*)/', $versionString, $matches) === 1) {
            $this->buildMetaData = $matches[1];
            $versionString = \str_replace($matches[0], '', $versionString);
        }
    }
    private function extractLabel(string &$versionString) : void {
        if (\preg_match('/-(.*)/', $versionString, $matches) === 1) {
            $this->label = $matches[1];
            $versionString = \str_replace($matches[0], '', $versionString);
        }
    }
    private function stripPotentialVPrefix(string &$versionString) : void {
        if ($versionString[0] !== 'v') {
            return;
        }
        $versionString = \substr($versionString, 1);
    }

}

Members

Title Sort descending Modifiers Object type Summary
VersionConstraintValue::$buildMetaData private property @var string
VersionConstraintValue::$label private property @var string
VersionConstraintValue::$major private property @var VersionNumber
VersionConstraintValue::$minor private property @var VersionNumber
VersionConstraintValue::$patch private property @var VersionNumber
VersionConstraintValue::$versionString private property @var string
VersionConstraintValue::extractBuildMetaData private function
VersionConstraintValue::extractLabel private function
VersionConstraintValue::getBuildMetaData public function
VersionConstraintValue::getLabel public function
VersionConstraintValue::getMajor public function
VersionConstraintValue::getMinor public function
VersionConstraintValue::getPatch public function
VersionConstraintValue::getVersionString public function
VersionConstraintValue::parseVersion private function
VersionConstraintValue::stripPotentialVPrefix private function
VersionConstraintValue::__construct public function

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal