]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/libs/composer/ComposerLock.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / libs / composer / ComposerLock.php
diff --git a/includes/libs/composer/ComposerLock.php b/includes/libs/composer/ComposerLock.php
new file mode 100644 (file)
index 0000000..dc8bc03
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * Reads a composer.lock file and provides accessors to get
+ * its hash and what is installed
+ *
+ * @since 1.25
+ */
+class ComposerLock {
+
+       /**
+        * @param string $location
+        */
+       public function __construct( $location ) {
+               $this->contents = json_decode( file_get_contents( $location ), true );
+       }
+
+       /**
+        * Dependencies currently installed according to composer.lock
+        *
+        * @return array
+        */
+       public function getInstalledDependencies() {
+               $deps = [];
+               foreach ( $this->contents['packages'] 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'] : '',
+                       ];
+               }
+
+               return $deps;
+       }
+}