PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 18.8
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v18.8
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / vendor / composer / InstalledVersions.php

InstalledVersions.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 18.8, at vendor/composer/InstalledVersions.php

332 lines 5.4 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
24
25 class InstalledVersions
26 {
27 private static $installed = array (
28 'root' =>
29 array (
30 'pretty_version' => 'dev-master',
31 'version' => 'dev-master',
32 'aliases' =>
33 array (
34 ),
35 'reference' => '3e93943f9a7108a410461596e5d081299cde235c',
36 'name' => 'yoast/wordpress-seo',
37 ),
38 'versions' =>
39 array (
40 'composer/installers' =>
41 array (
42 'pretty_version' => 'v1.12.0',
43 'version' => '1.12.0.0',
44 'aliases' =>
45 array (
46 ),
47 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
48 ),
49 'roundcube/plugin-installer' =>
50 array (
51 'replaced' =>
52 array (
53 0 => '*',
54 ),
55 ),
56 'shama/baton' =>
57 array (
58 'replaced' =>
59 array (
60 0 => '*',
61 ),
62 ),
63 'yoast/i18n-module' =>
64 array (
65 'pretty_version' => '3.1.1',
66 'version' => '3.1.1.0',
67 'aliases' =>
68 array (
69 ),
70 'reference' => '9d0a2f6daea6fb42376b023e7778294d19edd85d',
71 ),
72 'yoast/wordpress-seo' =>
73 array (
74 'pretty_version' => 'dev-master',
75 'version' => 'dev-master',
76 'aliases' =>
77 array (
78 ),
79 'reference' => '3e93943f9a7108a410461596e5d081299cde235c',
80 ),
81 ),
82 );
83 private static $canGetVendors;
84 private static $installedByVendor = array();
85
86
87
88
89
90
91
92 public static function getInstalledPackages()
93 {
94 $packages = array();
95 foreach (self::getInstalled() as $installed) {
96 $packages[] = array_keys($installed['versions']);
97 }
98
99 if (1 === \count($packages)) {
100 return $packages[0];
101 }
102
103 return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
104 }
105
106
107
108
109
110
111
112
113
114 public static function isInstalled($packageName)
115 {
116 foreach (self::getInstalled() as $installed) {
117 if (isset($installed['versions'][$packageName])) {
118 return true;
119 }
120 }
121
122 return false;
123 }
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138 public static function satisfies(VersionParser $parser, $packageName, $constraint)
139 {
140 $constraint = $parser->parseConstraints($constraint);
141 $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
142
143 return $provided->matches($constraint);
144 }
145
146
147
148
149
150
151
152
153
154
155 public static function getVersionRanges($packageName)
156 {
157 foreach (self::getInstalled() as $installed) {
158 if (!isset($installed['versions'][$packageName])) {
159 continue;
160 }
161
162 $ranges = array();
163 if (isset($installed['versions'][$packageName]['pretty_version'])) {
164 $ranges[] = $installed['versions'][$packageName]['pretty_version'];
165 }
166 if (array_key_exists('aliases', $installed['versions'][$packageName])) {
167 $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
168 }
169 if (array_key_exists('replaced', $installed['versions'][$packageName])) {
170 $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
171 }
172 if (array_key_exists('provided', $installed['versions'][$packageName])) {
173 $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
174 }
175
176 return implode(' || ', $ranges);
177 }
178
179 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
180 }
181
182
183
184
185
186 public static function getVersion($packageName)
187 {
188 foreach (self::getInstalled() as $installed) {
189 if (!isset($installed['versions'][$packageName])) {
190 continue;
191 }
192
193 if (!isset($installed['versions'][$packageName]['version'])) {
194 return null;
195 }
196
197 return $installed['versions'][$packageName]['version'];
198 }
199
200 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
201 }
202
203
204
205
206
207 public static function getPrettyVersion($packageName)
208 {
209 foreach (self::getInstalled() as $installed) {
210 if (!isset($installed['versions'][$packageName])) {
211 continue;
212 }
213
214 if (!isset($installed['versions'][$packageName]['pretty_version'])) {
215 return null;
216 }
217
218 return $installed['versions'][$packageName]['pretty_version'];
219 }
220
221 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
222 }
223
224
225
226
227
228 public static function getReference($packageName)
229 {
230 foreach (self::getInstalled() as $installed) {
231 if (!isset($installed['versions'][$packageName])) {
232 continue;
233 }
234
235 if (!isset($installed['versions'][$packageName]['reference'])) {
236 return null;
237 }
238
239 return $installed['versions'][$packageName]['reference'];
240 }
241
242 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
243 }
244
245
246
247
248
249 public static function getRootPackage()
250 {
251 $installed = self::getInstalled();
252
253 return $installed[0]['root'];
254 }
255
256
257
258
259
260
261
262
263 public static function getRawData()
264 {
265 @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
266
267 return self::$installed;
268 }
269
270
271
272
273
274
275
276 public static function getAllRawData()
277 {
278 return self::getInstalled();
279 }
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299 public static function reload($data)
300 {
301 self::$installed = $data;
302 self::$installedByVendor = array();
303 }
304
305
306
307
308
309 private static function getInstalled()
310 {
311 if (null === self::$canGetVendors) {
312 self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
313 }
314
315 $installed = array();
316
317 if (self::$canGetVendors) {
318 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
319 if (isset(self::$installedByVendor[$vendorDir])) {
320 $installed[] = self::$installedByVendor[$vendorDir];
321 } elseif (is_file($vendorDir.'/composer/installed.php')) {
322 $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
323 }
324 }
325 }
326
327 $installed[] = self::$installed;
328
329 return $installed;
330 }
331 }
332