Merge pull request #24375 from owncloud/archive_move

Move OC_Archive to \OC\Archive and PSR-4
This commit is contained in:
Lukas Reschke 2016-05-03 08:37:01 +02:00
commit adf7e7295e
6 changed files with 37 additions and 27 deletions

View File

@ -28,23 +28,25 @@
*
*/
abstract class OC_Archive{
namespace OC\Archive;
abstract class Archive{
/**
* Open any of the supported archive types
*
* @param string $path
* @return OC_Archive|void
* @return Archive|void
*/
public static function open($path) {
$mime = \OC::$server->getMimeTypeDetector()->detect($path);
switch($mime) {
case 'application/zip':
return new OC_Archive_ZIP($path);
return new ZIP($path);
case 'application/x-gzip':
return new OC_Archive_TAR($path);
return new TAR($path);
case 'application/x-bzip2':
return new OC_Archive_TAR($path);
return new TAR($path);
}
}

View File

@ -30,7 +30,9 @@
*
*/
class OC_Archive_TAR extends OC_Archive {
namespace OC\Archive;
class TAR extends Archive {
const PLAIN = 0;
const GZIP = 1;
const BZIP = 2;
@ -39,7 +41,7 @@ class OC_Archive_TAR extends OC_Archive {
private $cachedHeaders;
/**
* @var Archive_Tar tar
* @var \Archive_Tar tar
*/
private $tar = null;
private $path;
@ -50,7 +52,7 @@ class OC_Archive_TAR extends OC_Archive {
function __construct($source) {
$types = array(null, 'gz', 'bz2');
$this->path = $source;
$this->tar = new Archive_Tar($source, $types[self::getTarType($source)]);
$this->tar = new \Archive_Tar($source, $types[self::getTarType($source)]);
}
/**
@ -137,13 +139,13 @@ class OC_Archive_TAR extends OC_Archive {
*/
function rename($source, $dest) {
//no proper way to delete, rename entire archive, rename file and remake archive
$tmp = OCP\Files::tmpFolder();
$tmp = \OCP\Files::tmpFolder();
$this->tar->extract($tmp);
rename($tmp . $source, $tmp . $dest);
$this->tar = null;
unlink($this->path);
$types = array(null, 'gz', 'bz');
$this->tar = new Archive_Tar($this->path, $types[self::getTarType($this->path)]);
$this->tar = new \Archive_Tar($this->path, $types[self::getTarType($this->path)]);
$this->tar->createModify(array($tmp), '', $tmp . '/');
$this->fileList = false;
$this->cachedHeaders = false;
@ -256,7 +258,7 @@ class OC_Archive_TAR extends OC_Archive {
* @return bool
*/
function extractFile($path, $dest) {
$tmp = OCP\Files::tmpFolder();
$tmp = \OCP\Files::tmpFolder();
if (!$this->fileExists($path)) {
return false;
}
@ -268,7 +270,7 @@ class OC_Archive_TAR extends OC_Archive {
if ($success) {
rename($tmp . $path, $dest);
}
OCP\Files::rmdirr($tmp);
\OCP\Files::rmdirr($tmp);
return $success;
}
@ -324,9 +326,9 @@ class OC_Archive_TAR extends OC_Archive {
$this->fileList = false;
$this->cachedHeaders = false;
//no proper way to delete, extract entire archive, delete file and remake archive
$tmp = OCP\Files::tmpFolder();
$tmp = \OCP\Files::tmpFolder();
$this->tar->extract($tmp);
OCP\Files::rmdirr($tmp . $path);
\OCP\Files::rmdirr($tmp . $path);
$this->tar = null;
unlink($this->path);
$this->reopen();
@ -347,7 +349,7 @@ class OC_Archive_TAR extends OC_Archive {
} else {
$ext = '';
}
$tmpFile = OCP\Files::tmpFile($ext);
$tmpFile = \OCP\Files::tmpFile($ext);
if ($this->fileExists($path)) {
$this->extractFile($path, $tmpFile);
} elseif ($mode == 'r' or $mode == 'rb') {
@ -383,6 +385,6 @@ class OC_Archive_TAR extends OC_Archive {
$this->tar = null;
}
$types = array(null, 'gz', 'bz');
$this->tar = new Archive_Tar($this->path, $types[self::getTarType($this->path)]);
$this->tar = new \Archive_Tar($this->path, $types[self::getTarType($this->path)]);
}
}

View File

@ -27,9 +27,11 @@
*
*/
class OC_Archive_ZIP extends OC_Archive{
namespace OC\Archive;
class ZIP extends Archive{
/**
* @var ZipArchive zip
* @var \ZipArchive zip
*/
private $zip=null;
private $path;
@ -39,10 +41,10 @@ class OC_Archive_ZIP extends OC_Archive{
*/
function __construct($source) {
$this->path=$source;
$this->zip=new ZipArchive();
if($this->zip->open($source, ZipArchive::CREATE)) {
$this->zip=new \ZipArchive();
if($this->zip->open($source, \ZipArchive::CREATE)) {
}else{
OCP\Util::writeLog('files_archive', 'Error while opening archive '.$source, OCP\Util::WARN);
\OCP\Util::writeLog('files_archive', 'Error while opening archive '.$source, \OCP\Util::WARN);
}
}
/**
@ -193,7 +195,7 @@ class OC_Archive_ZIP extends OC_Archive{
}else{
$ext='';
}
$tmpFile=OCP\Files::tmpFile($ext);
$tmpFile=\OCP\Files::tmpFile($ext);
\OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
if($this->fileExists($path)) {
$this->extractFile($path, $tmpFile);

View File

@ -300,7 +300,7 @@ class Installer {
$extractDir = \OC::$server->getTempManager()->getTemporaryFolder();
OC_Helper::rmdirr($extractDir);
mkdir($extractDir);
if($archive=\OC_Archive::open($path)) {
if($archive=\OC\Archive\Archive::open($path)) {
$archive->extract($extractDir);
} else {
OC_Helper::rmdirr($extractDir);

View File

@ -6,6 +6,8 @@
* See the COPYING-README file.
*/
use OC\Archive\TAR;
class Test_Archive_TAR extends Test_Archive {
protected function setUp() {
parent::setUp();
@ -17,10 +19,10 @@ class Test_Archive_TAR extends Test_Archive {
protected function getExisting() {
$dir = OC::$SERVERROOT . '/tests/data';
return new OC_Archive_TAR($dir . '/data.tar.gz');
return new TAR($dir . '/data.tar.gz');
}
protected function getNew() {
return new OC_Archive_TAR(OCP\Files::tmpFile('.tar.gz'));
return new TAR(OCP\Files::tmpFile('.tar.gz'));
}
}

View File

@ -6,6 +6,8 @@
* See the COPYING-README file.
*/
use OC\Archive\ZIP;
class Test_Archive_ZIP extends Test_Archive {
protected function setUp() {
parent::setUp();
@ -17,10 +19,10 @@ class Test_Archive_ZIP extends Test_Archive {
protected function getExisting() {
$dir = OC::$SERVERROOT . '/tests/data';
return new OC_Archive_ZIP($dir . '/data.zip');
return new ZIP($dir . '/data.zip');
}
protected function getNew() {
return new OC_Archive_ZIP(OCP\Files::tmpFile('.zip'));
return new ZIP(OCP\Files::tmpFile('.zip'));
}
}