function doBackup() { $config = $this->config; $workingDir = FileSystemHelper::tmpDir(null, 'ja', 0777); $workingDir .= $this->extKey . DS; if (mkdir($workingDir, 0777) === false) { return false; } $backupDir = $this->getBackupPath(); if ($backupDir === false) { return false; } $locations = $this->getLocation(); $cnt = count($locations); foreach ($locations as $name => $path) { if ($name != 'location') { FileSystemHelper::cp($path, $workingDir . $name, true, 0777); } else { FileSystemHelper::cp($path, $workingDir, true, 0777); } } $this->_backupDatabase($workingDir); //save all to backup file $createDate = date("Y-m-d H:i:s"); $fileName = $this->extKey . "_" . date("dMY_His", strtotime($createDate)); $fileNameBak = $fileName . ".zip"; $fileBak = $backupDir . $fileNameBak; ArchiveHelper::zip($fileBak, $workingDir, true); // $comment = (string) (isset($this->message) ? $this->message : ""); $info = "extKey={$this->extKey}" . "\r\n"; $info .= "version={$this->version}" . "\r\n"; $info .= "createDate={$createDate}" . "\r\n"; $info .= "comment={$comment}" . "\r\n"; $fileInfo = $backupDir . $fileName . ".txt"; $fp = fopen($fileInfo, 'wb'); fwrite($fp, $info); fclose($fp); // return $fileNameBak; }
/** * Advanced move file and directories with support recursively mode * * @param $src string source file or directory * @param $dest string destination file or directory * @param $recursive boolean recursive mode * @param $mod int unix permission formated number * * @return boolean true if success, otherwise return false */ function mv($src, $dest, $recursive = false, $mod = 0700) { if (FileSystemHelper::cp($src, $dest, $recursive, $mod) === false) { return false; } if (JFolder::exists($src) && preg_match("/\\/\$/", $src) > 0) { $rv = true; $dh = opendir($src); while (($entry = readdir($dh)) !== false) { if (FileSystemHelper::rm($src . $entry, true) === false) { $rv = false; } } return $rv; } else { return FileSystemHelper::rm($src, $dest, $recursive); } }