Add checks for archive building libraries

modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarArchiveBuilder.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/ZipArchiveBuilder.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderInterface.php
	modifié:         core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php
	modifié:         templates/backOffice/default/ajax/export-modal.html
	modifié:         templates/backOffice/default/export-page.html
This commit is contained in:
Benjamin Perche
2014-08-05 15:10:19 +02:00
parent b5dbf08bb7
commit d1a07b883b
8 changed files with 137 additions and 130 deletions

View File

@@ -47,15 +47,6 @@ class TarArchiveBuilder extends AbstractArchiveBuilder
/** @var \Thelia\Log\Tlog */
protected $logger;
public function __construct()
{
if (false !== (bool) ini_get("phar.readonly") || !class_exists("\\PharData")) {
return null;
}
parent::__construct();
}
public function __destruct()
{
if ($this->tar instanceof \PharData) {
@@ -512,4 +503,9 @@ class TarArchiveBuilder extends AbstractArchiveBuilder
{
return $this->compression;
}
public function isAvailable()
{
return false === (bool) ini_get("phar.readonly") && class_exists("\\PharData");
}
}

View File

@@ -19,15 +19,6 @@ namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder;
*/
class TarBz2ArchiveBuilder extends TarArchiveBuilder
{
public function __construct()
{
if (!extension_loaded("bzip2")) {
return null;
}
parent::__construct();
}
public function getName()
{
return "tar.bz2";
@@ -53,4 +44,9 @@ class TarBz2ArchiveBuilder extends TarArchiveBuilder
return $this;
}
public function isAvailable()
{
return parent::isAvailable() && extension_loaded("bzip2");
}
}

View File

@@ -19,15 +19,6 @@ namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder;
*/
class TarGzArchiveBuilder extends TarArchiveBuilder
{
public function __construct()
{
if (!extension_loaded("zlib")) {
return null;
}
parent::__construct();
}
public function getName()
{
return "tar.gz";
@@ -54,4 +45,8 @@ class TarGzArchiveBuilder extends TarArchiveBuilder
return $this;
}
public function isAvailable()
{
return parent::isAvailable() && extension_loaded("zlib");
}
}

View File

@@ -610,4 +610,14 @@ class ZipArchiveBuilder extends AbstractArchiveBuilder
{
return $this->zip;
}
/**
* @return bool
*
* Returns conditions for archive builder to be available ( loaded libraries )
*/
public function isAvailable()
{
return class_exists('\\ZipArchive');
}
}

View File

@@ -112,4 +112,10 @@ interface ArchiveBuilderInterface
*/
public function hasDirectory($directory);
/**
* @return bool
*
* Returns conditions for archive builder to be available ( loaded libraries )
*/
public function isAvailable();
}

View File

@@ -33,9 +33,9 @@ class ArchiveBuilderManager
* @param AbstractArchiveBuilder $archiveBuilder
* @return $this
*/
public function add(AbstractArchiveBuilder $archiveBuilder = null)
public function add(AbstractArchiveBuilder $archiveBuilder)
{
if (null !== $archiveBuilder) {
if ($archiveBuilder->isAvailable()) {
$archiveBuilder->setEnvironment($this->environment);
$this->archiveBuilders[$archiveBuilder->getName()] = $archiveBuilder;