@@ -503,4 +503,9 @@ class TarArchiveBuilder extends AbstractArchiveBuilder
|
||||
{
|
||||
return $this->compression;
|
||||
}
|
||||
|
||||
public function isAvailable()
|
||||
{
|
||||
return false === (bool) ini_get("phar.readonly") && class_exists("\\PharData");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,4 +44,9 @@ class TarBz2ArchiveBuilder extends TarArchiveBuilder
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isAvailable()
|
||||
{
|
||||
return parent::isAvailable() && extension_loaded("bz2");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,4 +45,8 @@ class TarGzArchiveBuilder extends TarArchiveBuilder
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isAvailable()
|
||||
{
|
||||
return parent::isAvailable() && extension_loaded("zlib");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ class ArchiveBuilderManager
|
||||
*/
|
||||
public function add(AbstractArchiveBuilder $archiveBuilder)
|
||||
{
|
||||
if (null !== $archiveBuilder) {
|
||||
if ($archiveBuilder->isAvailable()) {
|
||||
$archiveBuilder->setEnvironment($this->environment);
|
||||
|
||||
$this->archiveBuilders[$archiveBuilder->getName()] = $archiveBuilder;
|
||||
|
||||
Reference in New Issue
Block a user