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.
		
		
		
		
		
			
		
			
				
					
					
						
							228 lines
						
					
					
						
							3.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							228 lines
						
					
					
						
							3.5 KiB
						
					
					
				| <?php | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| namespace Composer; | |
| 
 | |
| use Composer\Semver\VersionParser; | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class InstalledVersions | |
| { | |
| private static $installed = array ( | |
|   'root' =>  | |
|   array ( | |
|     'pretty_version' => 'dev-develop', | |
|     'version' => 'dev-develop', | |
|     'aliases' =>  | |
|     array ( | |
|     ), | |
|     'reference' => 'b406b8536141dd28af4e24001b897d00d1812cde', | |
|     'name' => '__root__', | |
|   ), | |
|   'versions' =>  | |
|   array ( | |
|     '__root__' =>  | |
|     array ( | |
|       'pretty_version' => 'dev-develop', | |
|       'version' => 'dev-develop', | |
|       'aliases' =>  | |
|       array ( | |
|       ), | |
|       'reference' => 'b406b8536141dd28af4e24001b897d00d1812cde', | |
|     ), | |
|     'phpmailer/phpmailer' =>  | |
|     array ( | |
|       'pretty_version' => 'v6.2.0', | |
|       'version' => '6.2.0.0', | |
|       'aliases' =>  | |
|       array ( | |
|       ), | |
|       'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f', | |
|     ), | |
|   ), | |
| ); | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getInstalledPackages() | |
| { | |
| return array_keys(self::$installed['versions']); | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function isInstalled($packageName) | |
| { | |
| return isset(self::$installed['versions'][$packageName]); | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function satisfies(VersionParser $parser, $packageName, $constraint) | |
| { | |
| $constraint = $parser->parseConstraints($constraint); | |
| $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); | |
| 
 | |
| return $provided->matches($constraint); | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getVersionRanges($packageName) | |
| { | |
| if (!isset(self::$installed['versions'][$packageName])) { | |
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | |
| } | |
| 
 | |
| $ranges = array(); | |
| if (isset(self::$installed['versions'][$packageName]['pretty_version'])) { | |
| $ranges[] = self::$installed['versions'][$packageName]['pretty_version']; | |
| } | |
| if (array_key_exists('aliases', self::$installed['versions'][$packageName])) { | |
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']); | |
| } | |
| if (array_key_exists('replaced', self::$installed['versions'][$packageName])) { | |
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']); | |
| } | |
| if (array_key_exists('provided', self::$installed['versions'][$packageName])) { | |
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']); | |
| } | |
| 
 | |
| return implode(' || ', $ranges); | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getVersion($packageName) | |
| { | |
| if (!isset(self::$installed['versions'][$packageName])) { | |
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | |
| } | |
| 
 | |
| if (!isset(self::$installed['versions'][$packageName]['version'])) { | |
| return null; | |
| } | |
| 
 | |
| return self::$installed['versions'][$packageName]['version']; | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getPrettyVersion($packageName) | |
| { | |
| if (!isset(self::$installed['versions'][$packageName])) { | |
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | |
| } | |
| 
 | |
| if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) { | |
| return null; | |
| } | |
| 
 | |
| return self::$installed['versions'][$packageName]['pretty_version']; | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getReference($packageName) | |
| { | |
| if (!isset(self::$installed['versions'][$packageName])) { | |
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | |
| } | |
| 
 | |
| if (!isset(self::$installed['versions'][$packageName]['reference'])) { | |
| return null; | |
| } | |
| 
 | |
| return self::$installed['versions'][$packageName]['reference']; | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getRootPackage() | |
| { | |
| return self::$installed['root']; | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function getRawData() | |
| { | |
| return self::$installed; | |
| } | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| public static function reload($data) | |
| { | |
| self::$installed = $data; | |
| } | |
| }
 |