summaryrefslogtreecommitdiff
path: root/includes/archiver.inc
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-10-15 17:55:55 +0000
committerDries Buytaert <dries@buytaert.net>2009-10-15 17:55:55 +0000
commit2fb451c87241b5dfb44b45129978e1bb9b971a26 (patch)
treefaca7f0132377c12a8a9f4397e5d4d91fdc0fd99 /includes/archiver.inc
parent977d635bb1705ecebae8783a5e629214986eaddf (diff)
downloadbrdo-2fb451c87241b5dfb44b45129978e1bb9b971a26.tar.gz
brdo-2fb451c87241b5dfb44b45129978e1bb9b971a26.tar.bz2
- Patch #604618 by Crell, JacobSingh: create a common interface for Archive operations so we can handle .zip, .tar.gz.
Diffstat (limited to 'includes/archiver.inc')
-rw-r--r--includes/archiver.inc67
1 files changed, 67 insertions, 0 deletions
diff --git a/includes/archiver.inc b/includes/archiver.inc
new file mode 100644
index 000000000..8d514794a
--- /dev/null
+++ b/includes/archiver.inc
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * @file
+ * Shared classes and interfaces for the archiver system.
+ */
+
+/**
+ * Common interface for all Archiver classes.
+ */
+interface ArchiverInterface {
+
+ /**
+ * Contructor for a new archiver instance.
+ *
+ * @param $file_path
+ * The full system path of the archive to manipulate. Only local files
+ * are supported. If the file does not yet exist, it will be created if
+ * appropriate.
+ */
+ public function __construct($file_path);
+
+ /**
+ * Add the specified file or directory to the archive.
+ *
+ * @param $file_path
+ * The full system path of the file or directory to add. Only local files
+ * and directories are supported.
+ * @return
+ * The called object.
+ */
+ public function add($file_path);
+
+ /**
+ * Remove the specified file from the archive.
+ *
+ * @param $path
+ * The file name relative to the root of the archive to remove.
+ * @return
+ * The called object.
+ */
+ public function remove($path);
+
+ /**
+ * Extract multiple files in the archive to the specified path.
+ *
+ * @param $path
+ * A full system path of the directory to which to extract files.
+ * @param $files
+ * Optionally specify a list of files to be extracted. Files are
+ * relative to the root of the archive. If not specified, all files
+ * in the archive will be extracted
+ * @return
+ * The called object.
+ */
+ public function extract($path, Array $files = array());
+
+ /**
+ * List all files in the archive.
+ *
+ * @return
+ * An array of file names relative to the root of the archive, or
+ * an iteratable object that resolves to such a list.
+ */
+ public function listContents();
+}
+