PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.7
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
← All changes | vendor/composer/InstalledVersions.php +4 -41 4.0.73.10.7 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;