Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Versions.php
01 <?php
02
03 declare(strict_types=1);
04
05 namespace PackageVersions;
06
07 use Composer\InstalledVersions;
08 use OutOfBoundsException;
09 use UnexpectedValueException;
10
11 class_exists(InstalledVersions::class);
12
13 /**
14 * This is a stub class: it is in place only for scenarios where PackageVersions
15 * is installed with a `--no-scripts` flag, in which scenarios the Versions class
16 * is not being replaced.
17 *
18 * If you are reading this docBlock inside your `vendor/` dir, then this means
19 * that PackageVersions didn't correctly install, and is in "fallback" mode.
20 *
21 * @deprecated in favor of the Composer\InstalledVersions class provided by Composer 2. Require composer-runtime-api:^2 to ensure it is present.
22 */
23 final class Versions
24 {
25 /**
26 * @deprecated please use {@see self::rootPackageName()} instead.
27 * This constant will be removed in version 2.0.0.
28 */
29 const ROOT_PACKAGE_NAME = 'unknown/root-package@UNKNOWN';
30
31 /** @internal */
32 const VERSIONS = [];
33
34 private function __construct()
35 {
36 }
37
38 /**
39 * @psalm-pure
40 *
41 * @psalm-suppress ImpureMethodCall we know that {@see InstalledVersions} interaction does not
42 * cause any side effects here.
43 */
44 public static function rootPackageName() : string
45 {
46 if (!class_exists(InstalledVersions::class, false) || !InstalledVersions::getRawData()) {
47 return self::ROOT_PACKAGE_NAME;
48 }
49
50 return InstalledVersions::getRootPackage()['name'];
51 }
52
53 /**
54 * @throws OutOfBoundsException if a version cannot be located.
55 * @throws UnexpectedValueException if the composer.lock file could not be located.
56 */
57 public static function getVersion(string $packageName): string
58 {
59 if (!self::composer2ApiUsable()) {
60 return FallbackVersions::getVersion($packageName);
61 }
62
63 /** @psalm-suppress DeprecatedConstant */
64 if ($packageName === self::ROOT_PACKAGE_NAME) {
65 $rootPackage = InstalledVersions::getRootPackage();
66
67 return $rootPackage['pretty_version'] . '@' . $rootPackage['reference'];
68 }
69
70 return InstalledVersions::getPrettyVersion($packageName)
71 . '@' . InstalledVersions::getReference($packageName);
72 }
73
74 private static function composer2ApiUsable(): bool
75 {
76 if (!class_exists(InstalledVersions::class, false)) {
77 return false;
78 }
79
80 if (method_exists(InstalledVersions::class, 'getAllRawData')) {
81 $rawData = InstalledVersions::getAllRawData();
82 if (count($rawData) === 1 && count($rawData[0]) === 0) {
83 return false;
84 }
85 } else {
86 $rawData = InstalledVersions::getRawData();
87 if ($rawData === null || $rawData === []) {
88 return false;
89 }
90 }
91
92 return true;
93 }
94 }
95