Add don't use phar based archive builders if modules not enabled

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/ArchiveBuilderManager.php
This commit is contained in:
Benjamin Perche
2014-08-05 14:34:27 +02:00
parent 1bbf34e8a2
commit 370bf94f40
4 changed files with 32 additions and 1 deletions

View File

@@ -47,6 +47,16 @@ 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) {

View File

@@ -19,6 +19,16 @@ 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";

View File

@@ -11,6 +11,7 @@
/*************************************************************************************/
namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder;
use Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder;
/**
* Class TarGzArchiveBuilder
@@ -19,6 +20,16 @@ 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";

View File

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