Passed
Push — main ( 73c905...3e2603 )
by Rafael N.
02:56 queued 41s
created

InstalledVersions   A

Complexity

Total Complexity 21

Size/Duplication

Total Lines 205
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 61
c 1
b 0
f 0
dl 0
loc 205
rs 10
wmc 21

10 Methods

Rating   Name   Duplication   Size   Complexity  
A getRawData() 0 3 1
A getInstalledPackages() 0 3 1
A getVersionRanges() 0 21 6
A isInstalled() 0 3 1
A getReference() 0 11 3
A getPrettyVersion() 0 11 3
A satisfies() 0 6 1
A getVersion() 0 11 3
A getRootPackage() 0 3 1
A reload() 0 3 1
1
<?php
2
3
4
5
6
7
8
9
10
11
12
13
namespace Composer;
14
15
use Composer\Semver\VersionParser;
16
17
18
19
20
21
22
class InstalledVersions
23
{
24
private static $installed = array (
25
  'root' => 
26
  array (
27
    'pretty_version' => 'dev-main',
28
    'version' => 'dev-main',
29
    'aliases' => 
30
    array (
31
    ),
32
    'reference' => 'd9e0489e1656c21739c0e681c615d834e25952f9',
33
    'name' => 'rafansilva/emailsender',
34
  ),
35
  'versions' => 
36
  array (
37
    'phpmailer/phpmailer' => 
38
    array (
39
      'pretty_version' => 'v6.4.0',
40
      'version' => '6.4.0.0',
41
      'aliases' => 
42
      array (
43
      ),
44
      'reference' => '050d430203105c27c30efd1dce7aa421ad882d01',
45
    ),
46
    'rafansilva/emailsender' => 
47
    array (
48
      'pretty_version' => 'dev-main',
49
      'version' => 'dev-main',
50
      'aliases' => 
51
      array (
52
      ),
53
      'reference' => 'd9e0489e1656c21739c0e681c615d834e25952f9',
54
    ),
55
  ),
56
);
57
58
59
60
61
62
63
64
public static function getInstalledPackages()
65
{
66
return array_keys(self::$installed['versions']);
67
}
68
69
70
71
72
73
74
75
76
77
public static function isInstalled($packageName)
78
{
79
return isset(self::$installed['versions'][$packageName]);
80
}
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
public static function satisfies(VersionParser $parser, $packageName, $constraint)
96
{
97
$constraint = $parser->parseConstraints($constraint);
98
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
99
100
return $provided->matches($constraint);
101
}
102
103
104
105
106
107
108
109
110
111
112
public static function getVersionRanges($packageName)
113
{
114
if (!isset(self::$installed['versions'][$packageName])) {
115
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
116
}
117
118
$ranges = array();
119
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
120
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
121
}
122
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
123
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
124
}
125
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
126
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
127
}
128
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
129
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
130
}
131
132
return implode(' || ', $ranges);
133
}
134
135
136
137
138
139
public static function getVersion($packageName)
140
{
141
if (!isset(self::$installed['versions'][$packageName])) {
142
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
143
}
144
145
if (!isset(self::$installed['versions'][$packageName]['version'])) {
146
return null;
147
}
148
149
return self::$installed['versions'][$packageName]['version'];
150
}
151
152
153
154
155
156
public static function getPrettyVersion($packageName)
157
{
158
if (!isset(self::$installed['versions'][$packageName])) {
159
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
160
}
161
162
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
163
return null;
164
}
165
166
return self::$installed['versions'][$packageName]['pretty_version'];
167
}
168
169
170
171
172
173
public static function getReference($packageName)
174
{
175
if (!isset(self::$installed['versions'][$packageName])) {
176
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
177
}
178
179
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
180
return null;
181
}
182
183
return self::$installed['versions'][$packageName]['reference'];
184
}
185
186
187
188
189
190
public static function getRootPackage()
191
{
192
return self::$installed['root'];
193
}
194
195
196
197
198
199
200
201
public static function getRawData()
202
{
203
return self::$installed;
204
}
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
public static function reload($data)
225
{
226
self::$installed = $data;
227
}
228
}
229