337 lines
6.1 KiB
PHP
337 lines
6.1 KiB
PHP
<?php
|
|
|
|
namespace Composer;
|
|
|
|
use Composer\Semver\VersionParser;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class InstalledVersions
|
|
{
|
|
private static $installed = array (
|
|
'root' =>
|
|
array (
|
|
'pretty_version' => '1.0.0+no-version-set',
|
|
'version' => '1.0.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => NULL,
|
|
'name' => '__root__',
|
|
),
|
|
'versions' =>
|
|
array (
|
|
'__root__' =>
|
|
array (
|
|
'pretty_version' => '1.0.0+no-version-set',
|
|
'version' => '1.0.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => NULL,
|
|
),
|
|
'clue/stream-filter' =>
|
|
array (
|
|
'pretty_version' => 'v1.5.0',
|
|
'version' => '1.5.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'aeb7d8ea49c7963d3b581378955dbf5bc49aa320',
|
|
),
|
|
'guzzlehttp/psr7' =>
|
|
array (
|
|
'pretty_version' => '1.7.0',
|
|
'version' => '1.7.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3',
|
|
),
|
|
'pay-now/paynow-php-sdk' =>
|
|
array (
|
|
'pretty_version' => '1.1.0',
|
|
'version' => '1.1.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '88291e5b804a432e2a2cf47e664a90231febd3db',
|
|
),
|
|
'php-http/async-client-implementation' =>
|
|
array (
|
|
'provided' =>
|
|
array (
|
|
0 => '1.0',
|
|
),
|
|
),
|
|
'php-http/client-implementation' =>
|
|
array (
|
|
'provided' =>
|
|
array (
|
|
0 => '1.0',
|
|
),
|
|
),
|
|
'php-http/curl-client' =>
|
|
array (
|
|
'pretty_version' => 'v1.7.1',
|
|
'version' => '1.7.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '6341a93d00e5d953fc868a3928b5167e6513f2b6',
|
|
),
|
|
'php-http/discovery' =>
|
|
array (
|
|
'pretty_version' => '1.13.0',
|
|
'version' => '1.13.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '788f72d64c43dc361e7fcc7464c3d947c64984a7',
|
|
),
|
|
'php-http/httplug' =>
|
|
array (
|
|
'pretty_version' => 'v1.1.0',
|
|
'version' => '1.1.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '1c6381726c18579c4ca2ef1ec1498fdae8bdf018',
|
|
),
|
|
'php-http/message' =>
|
|
array (
|
|
'pretty_version' => '1.10.0',
|
|
'version' => '1.10.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '39db36d5972e9e6d00ea852b650953f928d8f10d',
|
|
),
|
|
'php-http/message-factory' =>
|
|
array (
|
|
'pretty_version' => 'v1.0.2',
|
|
'version' => '1.0.2.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'a478cb11f66a6ac48d8954216cfed9aa06a501a1',
|
|
),
|
|
'php-http/message-factory-implementation' =>
|
|
array (
|
|
'provided' =>
|
|
array (
|
|
0 => '1.0',
|
|
),
|
|
),
|
|
'php-http/promise' =>
|
|
array (
|
|
'pretty_version' => '1.1.0',
|
|
'version' => '1.1.0.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '4c4c1f9b7289a2ec57cde7f1e9762a5789506f88',
|
|
),
|
|
'psr/http-message' =>
|
|
array (
|
|
'pretty_version' => '1.0.1',
|
|
'version' => '1.0.1.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
|
),
|
|
'psr/http-message-implementation' =>
|
|
array (
|
|
'provided' =>
|
|
array (
|
|
0 => '1.0',
|
|
),
|
|
),
|
|
'ralouphie/getallheaders' =>
|
|
array (
|
|
'pretty_version' => '3.0.3',
|
|
'version' => '3.0.3.0',
|
|
'aliases' =>
|
|
array (
|
|
),
|
|
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
|
),
|
|
),
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
}
|
|
}
|