@@ -32,11 +32,6 @@ class InstalledVersions
32
32
*/
33
33
private static $ installed ;
34
34
35
- /**
36
- * @var bool
37
- */
38
- private static $ installedIsLocalDir ;
39
-
40
35
/**
41
36
* @var bool|null
42
37
*/
@@ -314,12 +309,6 @@ public static function reload($data)
314
309
{
315
310
self ::$ installed = $ data ;
316
311
self ::$ installedByVendor = array ();
317
-
318
- // when using reload, we disable the duplicate protection to ensure that self::$installed data is
319
- // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
320
- // so we have to assume it does not, and that may result in duplicate data being returned when listing
321
- // all installed packages for example
322
- self ::$ installedIsLocalDir = false ;
323
312
}
324
313
325
314
/**
@@ -336,24 +325,19 @@ private static function getInstalled()
336
325
$ copiedLocalDir = false ;
337
326
338
327
if (self ::$ canGetVendors ) {
339
- $ selfDir = strtr (__DIR__ , '\\' , '/ ' );
340
328
foreach (ClassLoader::getRegisteredLoaders () as $ vendorDir => $ loader ) {
341
- $ vendorDir = strtr ($ vendorDir , '\\' , '/ ' );
342
329
if (isset (self ::$ installedByVendor [$ vendorDir ])) {
343
330
$ installed [] = self ::$ installedByVendor [$ vendorDir ];
344
331
} elseif (is_file ($ vendorDir .'/composer/installed.php ' )) {
345
332
/** @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 */
346
333
$ required = require $ vendorDir .'/composer/installed.php ' ;
347
334
self ::$ installedByVendor [$ vendorDir ] = $ required ;
348
335
$ installed [] = $ required ;
349
- if (self :: $ installed === null && $ vendorDir .'/composer ' === $ selfDir ) {
336
+ if (strtr ( $ vendorDir .'/composer ' , '\\' , ' / ' ) === strtr ( __DIR__ , '\\' , ' / ' ) ) {
350
337
self ::$ installed = $ required ;
351
- self :: $ installedIsLocalDir = true ;
338
+ $ copiedLocalDir = true ;
352
339
}
353
340
}
354
- if (self ::$ installedIsLocalDir && $ vendorDir .'/composer ' === $ selfDir ) {
355
- $ copiedLocalDir = true ;
356
- }
357
341
}
358
342
}
359
343
0 commit comments