From 370bf94f40d1ac5224ede1a9171e24e3791b7771 Mon Sep 17 00:00:00 2001 From: Benjamin Perche Date: Tue, 5 Aug 2014 14:34:27 +0200 Subject: [PATCH] =?UTF-8?q?Add=20don't=20use=20phar=20based=20archive=20bu?= =?UTF-8?q?ilders=20if=20modules=20not=20enabled=20=09modifi=C3=A9:=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20core/lib/Thelia/Core/FileFormat/Archive/Ar?= =?UTF-8?q?chiveBuilder/TarArchiveBuilder.php=20=09modifi=C3=A9:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20core/lib/Thelia/Core/FileFormat/Archive/Archi?= =?UTF-8?q?veBuilder/TarBz2ArchiveBuilder.php=20=09modifi=C3=A9:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20core/lib/Thelia/Core/FileFormat/Archive/Archi?= =?UTF-8?q?veBuilder/TarGzArchiveBuilder.php=20=09modifi=C3=A9:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20core/lib/Thelia/Core/FileFormat/Archive/Archi?= =?UTF-8?q?veBuilderManager.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Archive/ArchiveBuilder/TarArchiveBuilder.php | 10 ++++++++++ .../Archive/ArchiveBuilder/TarBz2ArchiveBuilder.php | 10 ++++++++++ .../Archive/ArchiveBuilder/TarGzArchiveBuilder.php | 11 +++++++++++ .../Core/FileFormat/Archive/ArchiveBuilderManager.php | 2 +- 4 files changed, 32 insertions(+), 1 deletion(-) 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);