]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/libs/composer/ComposerInstalled.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / libs / composer / ComposerInstalled.php
diff --git a/includes/libs/composer/ComposerInstalled.php b/includes/libs/composer/ComposerInstalled.php
new file mode 100644 (file)
index 0000000..ef2b768
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Reads an installed.json file and provides accessors to get what is
+ * installed
+ *
+ * @since 1.27
+ */
+class ComposerInstalled {
+
+       /**
+        * @param string $location
+        */
+       public function __construct( $location ) {
+               $this->contents = json_decode( file_get_contents( $location ), true );
+       }
+
+       /**
+        * Dependencies currently installed according to installed.json
+        *
+        * @return array
+        */
+       public function getInstalledDependencies() {
+               $deps = [];
+               foreach ( $this->contents as $installed ) {
+                       $deps[$installed['name']] = [
+                               'version' => ComposerJson::normalizeVersion( $installed['version'] ),
+                               'type' => $installed['type'],
+                               'licenses' => isset( $installed['license'] ) ? $installed['license'] : [],
+                               'authors' => isset( $installed['authors'] ) ? $installed['authors'] : [],
+                               'description' => isset( $installed['description'] ) ? $installed['description'] : '',
+                       ];
+               }
+
+               ksort( $deps );
+               return $deps;
+       }
+}