diff vendor/phar-io/manifest/src/ManifestLoader.php @ 14:1fec387a4317

Update Drupal core to 8.5.2 via Composer
author Chris Cannam
date Mon, 23 Apr 2018 09:46:53 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/phar-io/manifest/src/ManifestLoader.php	Mon Apr 23 09:46:53 2018 +0100
@@ -0,0 +1,66 @@
+<?php
+/*
+ * This file is part of PharIo\Manifest.
+ *
+ * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace PharIo\Manifest;
+
+class ManifestLoader {
+    /**
+     * @param string $filename
+     *
+     * @return Manifest
+     *
+     * @throws ManifestLoaderException
+     */
+    public static function fromFile($filename) {
+        try {
+            return (new ManifestDocumentMapper())->map(
+                ManifestDocument::fromFile($filename)
+            );
+        } catch (Exception $e) {
+            throw new ManifestLoaderException(
+                sprintf('Loading %s failed.', $filename),
+                $e->getCode(),
+                $e
+            );
+        }
+    }
+
+    /**
+     * @param string $filename
+     *
+     * @return Manifest
+     *
+     * @throws ManifestLoaderException
+     */
+    public static function fromPhar($filename) {
+        return self::fromFile('phar://' . $filename . '/manifest.xml');
+    }
+
+    /**
+     * @param string $manifest
+     *
+     * @return Manifest
+     *
+     * @throws ManifestLoaderException
+     */
+    public static function fromString($manifest) {
+        try {
+            return (new ManifestDocumentMapper())->map(
+                ManifestDocument::fromString($manifest)
+            );
+        } catch (Exception $e) {
+            throw new ManifestLoaderException(
+                'Processing string failed',
+                $e->getCode(),
+                $e
+            );
+        }
+    }
+}