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 */ /** @var \Thelia\Log\Tlog */
protected $logger; protected $logger;
public function __construct()
{
if (false !== (bool)ini_get("phar.readonly") || !class_exists("\\PharData")) {
return null;
}
parent::__construct();
}
public function __destruct() public function __destruct()
{ {
if ($this->tar instanceof \PharData) { if ($this->tar instanceof \PharData) {

View File

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

View File

@@ -11,6 +11,7 @@
/*************************************************************************************/ /*************************************************************************************/
namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder; namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder;
use Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder;
/** /**
* Class TarGzArchiveBuilder * Class TarGzArchiveBuilder
@@ -19,6 +20,16 @@ namespace Thelia\Core\FileFormat\Archive\ArchiveBuilder;
*/ */
class TarGzArchiveBuilder extends TarArchiveBuilder class TarGzArchiveBuilder extends TarArchiveBuilder
{ {
public function __construct()
{
if (!extension_loaded("zlib")) {
return null;
}
parent::__construct();
}
public function getName() public function getName()
{ {
return "tar.gz"; return "tar.gz";

View File

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