PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 3.0.0
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v3.0.0
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / vendor / composer / InstalledVersions.php

InstalledVersions.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 3.0.0, at vendor/composer/InstalledVersions.php

294 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4
5
6
7
8
9
10
11
12
13 namespace Composer;
14
15 use Composer\Autoload\ClassLoader;
16 use Composer\Semver\VersionParser;
17
18
19
20
21
22
23 class InstalledVersions
24 {
25 private static $installed = array (
26 'root' =>
27 array (
28 'pretty_version' => '1.1.2',
29 'version' => '1.1.2.0',
30 'aliases' =>
31 array (
32 ),
33 'reference' => NULL,
34 'name' => 'codeinwp/optimole-wp',
35 ),
36 'versions' =>
37 array (
38 'codeinwp/optimole-wp' =>
39 array (
40 'pretty_version' => '1.1.2',
41 'version' => '1.1.2.0',
42 'aliases' =>
43 array (
44 ),
45 'reference' => NULL,
46 ),
47 'codeinwp/themeisle-sdk' =>
48 array (
49 'pretty_version' => '3.2.15',
50 'version' => '3.2.15.0',
51 'aliases' =>
52 array (
53 ),
54 'reference' => '95b7447a5f4faba410c281c4bf278fbd740fed71',
55 ),
56 ),
57 );
58 private static $canGetVendors;
59 private static $installedByVendor = array();
60
61
62
63
64
65
66
67 public static function getInstalledPackages()
68 {
69 $packages = array();
70 foreach (self::getInstalled() as $installed) {
71 $packages[] = array_keys($installed['versions']);
72 }
73
74
75 if (1 === \count($packages)) {
76 return $packages[0];
77 }
78
79 return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
80 }
81
82
83
84
85
86
87
88
89
90 public static function isInstalled($packageName)
91 {
92 foreach (self::getInstalled() as $installed) {
93 if (isset($installed['versions'][$packageName])) {
94 return true;
95 }
96 }
97
98 return false;
99 }
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 public static function satisfies(VersionParser $parser, $packageName, $constraint)
115 {
116 $constraint = $parser->parseConstraints($constraint);
117 $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
118
119 return $provided->matches($constraint);
120 }
121
122
123
124
125
126
127
128
129
130
131 public static function getVersionRanges($packageName)
132 {
133 foreach (self::getInstalled() as $installed) {
134 if (!isset($installed['versions'][$packageName])) {
135 continue;
136 }
137
138 $ranges = array();
139 if (isset($installed['versions'][$packageName]['pretty_version'])) {
140 $ranges[] = $installed['versions'][$packageName]['pretty_version'];
141 }
142 if (array_key_exists('aliases', $installed['versions'][$packageName])) {
143 $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
144 }
145 if (array_key_exists('replaced', $installed['versions'][$packageName])) {
146 $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
147 }
148 if (array_key_exists('provided', $installed['versions'][$packageName])) {
149 $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
150 }
151
152 return implode(' || ', $ranges);
153 }
154
155 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
156 }
157
158
159
160
161
162 public static function getVersion($packageName)
163 {
164 foreach (self::getInstalled() as $installed) {
165 if (!isset($installed['versions'][$packageName])) {
166 continue;
167 }
168
169 if (!isset($installed['versions'][$packageName]['version'])) {
170 return null;
171 }
172
173 return $installed['versions'][$packageName]['version'];
174 }
175
176 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
177 }
178
179
180
181
182
183 public static function getPrettyVersion($packageName)
184 {
185 foreach (self::getInstalled() as $installed) {
186 if (!isset($installed['versions'][$packageName])) {
187 continue;
188 }
189
190 if (!isset($installed['versions'][$packageName]['pretty_version'])) {
191 return null;
192 }
193
194 return $installed['versions'][$packageName]['pretty_version'];
195 }
196
197 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
198 }
199
200
201
202
203
204 public static function getReference($packageName)
205 {
206 foreach (self::getInstalled() as $installed) {
207 if (!isset($installed['versions'][$packageName])) {
208 continue;
209 }
210
211 if (!isset($installed['versions'][$packageName]['reference'])) {
212 return null;
213 }
214
215 return $installed['versions'][$packageName]['reference'];
216 }
217
218 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
219 }
220
221
222
223
224
225 public static function getRootPackage()
226 {
227 $installed = self::getInstalled();
228
229 return $installed[0]['root'];
230 }
231
232
233
234
235
236
237
238 public static function getRawData()
239 {
240 return self::$installed;
241 }
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261 public static function reload($data)
262 {
263 self::$installed = $data;
264 self::$installedByVendor = array();
265 }
266
267
268
269
270 private static function getInstalled()
271 {
272 if (null === self::$canGetVendors) {
273 self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
274 }
275
276 $installed = array();
277
278 if (self::$canGetVendors) {
279
280 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
281 if (isset(self::$installedByVendor[$vendorDir])) {
282 $installed[] = self::$installedByVendor[$vendorDir];
283 } elseif (is_file($vendorDir.'/composer/installed.php')) {
284 $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
285 }
286 }
287 }
288
289 $installed[] = self::$installed;
290
291 return $installed;
292 }
293 }
294