PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / vendor / composer / InstalledVersions.php
woocommerce-multilingual / vendor / composer Last commit date
installers 2 weeks ago ClassLoader.php 2 weeks ago InstalledVersions.php 2 weeks ago LICENSE 5 years ago autoload_classmap.php 2 weeks ago autoload_files.php 2 weeks ago autoload_namespaces.php 2 weeks ago autoload_psr4.php 2 weeks ago autoload_real.php 2 weeks ago autoload_static.php 2 weeks ago installed.php 2 weeks ago platform_check.php 2 weeks ago
InstalledVersions.php
231 lines
1 <?php
2
3 /*
4 * This file is part of Composer.
5 *
6 * (c) Nils Adermann <naderman@naderman.de>
7 * Jordi Boggiano <j.boggiano@seld.be>
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13 namespace Composer;
14
15 use Composer\Autoload\ClassLoader;
16 use Composer\Semver\VersionParser;
17
18 class InstalledVersions
19 {
20 private static $installed;
21
22 private static $canGetVendors;
23
24 private static $installedByVendor = array();
25
26 public static function getInstalledPackages()
27 {
28 $packages = array();
29 foreach (self::getInstalled() as $installed) {
30 $packages[] = array_keys($installed['versions']);
31 }
32
33 if (1 === \count($packages)) {
34 return $packages[0];
35 }
36
37 return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
38 }
39
40 public static function getInstalledPackagesByType($type)
41 {
42 $packagesByType = array();
43
44 foreach (self::getInstalled() as $installed) {
45 foreach ($installed['versions'] as $name => $package) {
46 if (isset($package['type']) && $package['type'] === $type) {
47 $packagesByType[] = $name;
48 }
49 }
50 }
51
52 return $packagesByType;
53 }
54
55 public static function isInstalled($packageName, $includeDevRequirements = true)
56 {
57 foreach (self::getInstalled() as $installed) {
58 if (isset($installed['versions'][$packageName])) {
59 return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
60 }
61 }
62
63 return false;
64 }
65
66 public static function satisfies(VersionParser $parser, $packageName, $constraint)
67 {
68 $constraint = $parser->parseConstraints($constraint);
69 $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
70
71 return $provided->matches($constraint);
72 }
73
74 public static function getVersionRanges($packageName)
75 {
76 foreach (self::getInstalled() as $installed) {
77 if (!isset($installed['versions'][$packageName])) {
78 continue;
79 }
80
81 $ranges = array();
82 if (isset($installed['versions'][$packageName]['pretty_version'])) {
83 $ranges[] = $installed['versions'][$packageName]['pretty_version'];
84 }
85 if (array_key_exists('aliases', $installed['versions'][$packageName])) {
86 $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
87 }
88 if (array_key_exists('replaced', $installed['versions'][$packageName])) {
89 $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
90 }
91 if (array_key_exists('provided', $installed['versions'][$packageName])) {
92 $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
93 }
94
95 return implode(' || ', $ranges);
96 }
97
98 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
99 }
100
101 public static function getVersion($packageName)
102 {
103 foreach (self::getInstalled() as $installed) {
104 if (!isset($installed['versions'][$packageName])) {
105 continue;
106 }
107
108 if (!isset($installed['versions'][$packageName]['version'])) {
109 return null;
110 }
111
112 return $installed['versions'][$packageName]['version'];
113 }
114
115 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
116 }
117
118 public static function getPrettyVersion($packageName)
119 {
120 foreach (self::getInstalled() as $installed) {
121 if (!isset($installed['versions'][$packageName])) {
122 continue;
123 }
124
125 if (!isset($installed['versions'][$packageName]['pretty_version'])) {
126 return null;
127 }
128
129 return $installed['versions'][$packageName]['pretty_version'];
130 }
131
132 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
133 }
134
135 public static function getReference($packageName)
136 {
137 foreach (self::getInstalled() as $installed) {
138 if (!isset($installed['versions'][$packageName])) {
139 continue;
140 }
141
142 if (!isset($installed['versions'][$packageName]['reference'])) {
143 return null;
144 }
145
146 return $installed['versions'][$packageName]['reference'];
147 }
148
149 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
150 }
151
152 public static function getInstallPath($packageName)
153 {
154 foreach (self::getInstalled() as $installed) {
155 if (!isset($installed['versions'][$packageName])) {
156 continue;
157 }
158
159 return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
160 }
161
162 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
163 }
164
165 public static function getRootPackage()
166 {
167 $installed = self::getInstalled();
168
169 return $installed[0]['root'];
170 }
171
172 public static function getRawData()
173 {
174 @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);
175
176 if (null === self::$installed) {
177 if (substr(__DIR__, -8, 1) !== 'C') {
178 self::$installed = include __DIR__ . '/installed.php';
179 } else {
180 self::$installed = array();
181 }
182 }
183
184 return self::$installed;
185 }
186
187 public static function getAllRawData()
188 {
189 return self::getInstalled();
190 }
191
192 public static function reload($data)
193 {
194 self::$installed = $data;
195 self::$installedByVendor = array();
196 }
197
198 private static function getInstalled()
199 {
200 if (null === self::$canGetVendors) {
201 self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
202 }
203
204 $installed = array();
205
206 if (self::$canGetVendors) {
207 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
208 if (isset(self::$installedByVendor[$vendorDir])) {
209 $installed[] = self::$installedByVendor[$vendorDir];
210 } elseif (is_file($vendorDir.'/composer/installed.php')) {
211 $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
212 if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
213 self::$installed = $installed[count($installed) - 1];
214 }
215 }
216 }
217 }
218
219 if (null === self::$installed) {
220 if (substr(__DIR__, -8, 1) !== 'C') {
221 self::$installed = require __DIR__ . '/installed.php';
222 } else {
223 self::$installed = array();
224 }
225 }
226 $installed[] = self::$installed;
227
228 return $installed;
229 }
230 }
231