path = $path; } /** * save a file inside this package * @param string relative path within the package * @param string|resource file contents or open file handle */ function addFile($path, $fileOrStream) { if (is_resource($fileOrStream)) { $this->zip->addFromString($path, stream_get_contents($fileOrStream)); } else { $this->zip->addFromString($path, $fileOrStream); } } /** * Initialize the package creator */ function init() { $this->zip = new ZipArchive; if (true !== $this->zip->open($this->path, ZIPARCHIVE::CREATE)) { throw new Exception( 'Cannot open ZIP archive ' . $this->path ); } } /** * Create an internal directory, creating parent directories as needed * * This is a no-op for the tar creator * @param string $dir */ function mkdir($dir) { $this->zip->addEmptyDir($dir); } /** * Finish saving the package */ function close() { $this->zip->close(); } }