summaryrefslogtreecommitdiff
path: root/platform/www/vendor/splitbrain/php-archive/src/Archive.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/vendor/splitbrain/php-archive/src/Archive.php')
-rw-r--r--platform/www/vendor/splitbrain/php-archive/src/Archive.php135
1 files changed, 135 insertions, 0 deletions
diff --git a/platform/www/vendor/splitbrain/php-archive/src/Archive.php b/platform/www/vendor/splitbrain/php-archive/src/Archive.php
new file mode 100644
index 0000000..45c87fd
--- /dev/null
+++ b/platform/www/vendor/splitbrain/php-archive/src/Archive.php
@@ -0,0 +1,135 @@
+<?php
+
+namespace splitbrain\PHPArchive;
+
+abstract class Archive
+{
+
+ const COMPRESS_AUTO = -1;
+ const COMPRESS_NONE = 0;
+ const COMPRESS_GZIP = 1;
+ const COMPRESS_BZIP = 2;
+
+ /** @var callable */
+ protected $callback;
+
+ /**
+ * Set the compression level and type
+ *
+ * @param int $level Compression level (0 to 9)
+ * @param int $type Type of compression to use (use COMPRESS_* constants)
+ * @throws ArchiveIllegalCompressionException
+ */
+ abstract public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO);
+
+ /**
+ * Open an existing archive file for reading
+ *
+ * @param string $file
+ * @throws ArchiveIOException
+ */
+ abstract public function open($file);
+
+ /**
+ * Read the contents of an archive
+ *
+ * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects
+ *
+ * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams.
+ * Reopen the file with open() again if you want to do additional operations
+ *
+ * @return FileInfo[]
+ */
+ abstract public function contents();
+
+ /**
+ * Extract an existing archive
+ *
+ * The $strip parameter allows you to strip a certain number of path components from the filenames
+ * found in the archive file, similar to the --strip-components feature of GNU tar. This is triggered when
+ * an integer is passed as $strip.
+ * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
+ * the prefix will be stripped. It is recommended to give prefixes with a trailing slash.
+ *
+ * By default this will extract all files found in the archive. You can restrict the output using the $include
+ * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If
+ * $include is set, only files that match this expression will be extracted. Files that match the $exclude
+ * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against
+ * stripped filenames as described above.
+ *
+ * The archive is closed afterwards. Reopen the file with open() again if you want to do additional operations
+ *
+ * @param string $outdir the target directory for extracting
+ * @param int|string $strip either the number of path components or a fixed prefix to strip
+ * @param string $exclude a regular expression of files to exclude
+ * @param string $include a regular expression of files to include
+ * @throws ArchiveIOException
+ * @return array
+ */
+ abstract public function extract($outdir, $strip = '', $exclude = '', $include = '');
+
+ /**
+ * Create a new archive file
+ *
+ * If $file is empty, the archive file will be created in memory
+ *
+ * @param string $file
+ */
+ abstract public function create($file = '');
+
+ /**
+ * Add a file to the current archive using an existing file in the filesystem
+ *
+ * @param string $file path to the original file
+ * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original
+ * @throws ArchiveIOException
+ */
+ abstract public function addFile($file, $fileinfo = '');
+
+ /**
+ * Add a file to the current archive using the given $data as content
+ *
+ * @param string|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data
+ * @param string $data binary content of the file to add
+ * @throws ArchiveIOException
+ */
+ abstract public function addData($fileinfo, $data);
+
+ /**
+ * Close the archive, close all file handles
+ *
+ * After a call to this function no more data can be added to the archive, for
+ * read access no reading is allowed anymore
+ */
+ abstract public function close();
+
+ /**
+ * Returns the created in-memory archive data
+ *
+ * This implicitly calls close() on the Archive
+ */
+ abstract public function getArchive();
+
+ /**
+ * Save the created in-memory archive data
+ *
+ * Note: It is more memory effective to specify the filename in the create() function and
+ * let the library work on the new file directly.
+ *
+ * @param string $file
+ */
+ abstract public function save($file);
+
+ /**
+ * Set a callback function to be called whenever a file is added or extracted.
+ *
+ * The callback is called with a FileInfo object as parameter. You can use this to show progress
+ * info during an operation.
+ *
+ * @param callable $callback
+ */
+ public function setCallback($callback)
+ {
+ $this->callback = $callback;
+ }
+}