diff --git a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarArchiveBuilder.php b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarArchiveBuilder.php index 00e4fe838..7c7bdac61 100644 --- a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarArchiveBuilder.php +++ b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarArchiveBuilder.php @@ -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) { diff --git a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php index eb6790711..08079178e 100644 --- a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php +++ b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php @@ -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"; diff --git a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php index 581e4a3b2..ddc54611e 100644 --- a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php +++ b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilder/TarGzArchiveBuilder.php @@ -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"; diff --git a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php index 176531670..9e41432a1 100644 --- a/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php +++ b/core/lib/Thelia/Core/FileFormat/Archive/ArchiveBuilderManager.php @@ -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);