PluginProbe
User Access Manager / 2.2.23
User Access Manager v2.2.23
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
← All changes | vendor/composer/InstalledVersions.php +4 -41 2.3.15 → 2.2.23 View file →
@@ -26,14 +26,8 @@
26 26 */
27 27 class InstalledVersions
28 28 {
29 29 /**
30 - * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
31 - * @internal
32 - */
33 - private static $selfDir = null;
34 -
35 - /**
36 30 * @var mixed[]|null
37 31 * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
38 32 */
39 33 private static $installed;
@@ -38,13 +32,8 @@
38 32 */
39 33 private static $installed;
40 34
41 35 /**
42 - * @var bool
43 - */
44 - private static $installedIsLocalDir;
45 -
46 - /**
47 36 * @var bool|null
48 37 */
49 38 private static $canGetVendors;
50 39
@@ -319,29 +308,11 @@
319 308 public static function reload($data)
320 309 {
321 310 self::$installed = $data;
322 311 self::$installedByVendor = array();
323 -
324 - // when using reload, we disable the duplicate protection to ensure that self::$installed data is
325 - // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
326 - // so we have to assume it does not, and that may result in duplicate data being returned when listing
327 - // all installed packages for example
328 - self::$installedIsLocalDir = false;
329 312 }
330 313
331 314 /**
332 - * @return string
333 - */
334 - private static function getSelfDir()
335 - {
336 - if (self::$selfDir === null) {
337 - self::$selfDir = strtr(__DIR__, '\\', '/');
338 - }
339 -
340 - return self::$selfDir;
341 - }
342 -
343 - /**
344 315 * @return array[]
345 316 * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
346 317 */
347 318 private static function getInstalled()
@@ -350,29 +321,21 @@
350 321 self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
351 322 }
352 323
353 324 $installed = array();
354 - $copiedLocalDir = false;
355 325
356 326 if (self::$canGetVendors) {
357 - $selfDir = self::getSelfDir();
358 327 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
359 - $vendorDir = strtr($vendorDir, '\\', '/');
360 328 if (isset(self::$installedByVendor[$vendorDir])) {
361 329 $installed[] = self::$installedByVendor[$vendorDir];
362 330 } elseif (is_file($vendorDir.'/composer/installed.php')) {
363 331 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
364 332 $required = require $vendorDir.'/composer/installed.php';
365 - self::$installedByVendor[$vendorDir] = $required;
366 - $installed[] = $required;
367 - if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
368 - self::$installed = $required;
369 - self::$installedIsLocalDir = true;
333 + $installed[] = self::$installedByVendor[$vendorDir] = $required;
334 + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
335 + self::$installed = $installed[count($installed) - 1];
370 336 }
371 337 }
372 - if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
373 - $copiedLocalDir = true;
374 - }
375 338 }
376 339 }
377 340
378 341 if (null === self::$installed) {
@@ -386,9 +349,9 @@
386 349 self::$installed = array();
387 350 }
388 351 }
389 352
390 - if (self::$installed !== array() && !$copiedLocalDir) {
353 + if (self::$installed !== array()) {
391 354 $installed[] = self::$installed;
392 355 }
393 356
394 357 return $installed;