sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							123 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							123 lines
						
					
					
						
							2.5 KiB
						
					
					
				
								<?php
							 | 
						|
								namespace PharIo\Version;
							 | 
						|
								
							 | 
						|
								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 = '';
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @param string $versionString
							 | 
						|
								     */
							 | 
						|
								    public function __construct($versionString) {
							 | 
						|
								        $this->versionString = $versionString;
							 | 
						|
								
							 | 
						|
								        $this->parseVersion($versionString);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @param $versionString
							 | 
						|
								     */
							 | 
						|
								    private function parseVersion($versionString) {
							 | 
						|
								        $this->extractBuildMetaData($versionString);
							 | 
						|
								        $this->extractLabel($versionString);
							 | 
						|
								
							 | 
						|
								        $versionSegments = explode('.', $versionString);
							 | 
						|
								        $this->major     = new VersionNumber($versionSegments[0]);
							 | 
						|
								
							 | 
						|
								        $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null;
							 | 
						|
								        $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null;
							 | 
						|
								
							 | 
						|
								        $this->minor = new VersionNumber($minorValue);
							 | 
						|
								        $this->patch = new VersionNumber($patchValue);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @param string $versionString
							 | 
						|
								     */
							 | 
						|
								    private function extractBuildMetaData(&$versionString) {
							 | 
						|
								        if (preg_match('/\+(.*)/', $versionString, $matches) == 1) {
							 | 
						|
								            $this->buildMetaData = $matches[1];
							 | 
						|
								            $versionString       = str_replace($matches[0], '', $versionString);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @param string $versionString
							 | 
						|
								     */
							 | 
						|
								    private function extractLabel(&$versionString) {
							 | 
						|
								        if (preg_match('/\-(.*)/', $versionString, $matches) == 1) {
							 | 
						|
								            $this->label   = $matches[1];
							 | 
						|
								            $versionString = str_replace($matches[0], '', $versionString);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    public function getLabel() {
							 | 
						|
								        return $this->label;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    public function getBuildMetaData() {
							 | 
						|
								        return $this->buildMetaData;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    public function getVersionString() {
							 | 
						|
								        return $this->versionString;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return VersionNumber
							 | 
						|
								     */
							 | 
						|
								    public function getMajor() {
							 | 
						|
								        return $this->major;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return VersionNumber
							 | 
						|
								     */
							 | 
						|
								    public function getMinor() {
							 | 
						|
								        return $this->minor;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @return VersionNumber
							 | 
						|
								     */
							 | 
						|
								    public function getPatch() {
							 | 
						|
								        return $this->patch;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |