Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JArchive

Liste de tous les membres

Fonctions membres publiques statiques

static extract ($archivename, $extractdir)
static getAdapter ($type)

Attributs protégés statiques

static $adapters = array()

Description détaillée

Définition à la ligne 22 du fichier archive.php.


Documentation des fonctions membres

static JArchive::extract (   $archivename,
  $extractdir 
)
static

Extract an archive file to a directory.

Paramètres:
string$archivenameThe name of the archive file
string$extractdirDirectory to unpack into
Renvoie:
boolean True for success
Depuis:
11.1
Exceptions:
InvalidArgumentException

Définition à la ligne 41 du fichier archive.php.

Références JPath\clean(), JFile\copy(), JFolder\create(), JFactory\getConfig(), JFile\getExt(), et JFile\stripExt().

{
$untar = false;
$result = false;
$ext = JFile::getExt(strtolower($archivename));
// Check if a tar is embedded...gzip/bzip2 can just be plain files!
if (JFile::getExt(JFile::stripExt(strtolower($archivename))) == 'tar')
{
$untar = true;
}
switch ($ext)
{
case 'zip':
$adapter = self::getAdapter('zip');
if ($adapter)
{
$result = $adapter->extract($archivename, $extractdir);
}
break;
case 'tar':
$adapter = self::getAdapter('tar');
if ($adapter)
{
$result = $adapter->extract($archivename, $extractdir);
}
break;
case 'tgz':
// This format is a tarball gzip'd
$untar = true;
case 'gz':
case 'gzip':
// This may just be an individual file (e.g. sql script)
$adapter = self::getAdapter('gzip');
if ($adapter)
{
$config = JFactory::getConfig();
$tmpfname = $config->get('tmp_path') . '/' . uniqid('gzip');
$gzresult = $adapter->extract($archivename, $tmpfname);
if ($gzresult instanceof Exception)
{
@unlink($tmpfname);
return false;
}
if ($untar)
{
// Try to untar the file
$tadapter = self::getAdapter('tar');
if ($tadapter)
{
$result = $tadapter->extract($tmpfname, $extractdir);
}
}
else
{
$path = JPath::clean($extractdir);
$result = JFile::copy($tmpfname, $path . '/' . JFile::stripExt(basename(strtolower($archivename))), null, 1);
}
@unlink($tmpfname);
}
break;
case 'tbz2':
// This format is a tarball bzip2'd
$untar = true;
case 'bz2':
case 'bzip2':
// This may just be an individual file (e.g. sql script)
$adapter = self::getAdapter('bzip2');
if ($adapter)
{
$config = JFactory::getConfig();
$tmpfname = $config->get('tmp_path') . '/' . uniqid('bzip2');
$bzresult = $adapter->extract($archivename, $tmpfname);
if ($bzresult instanceof Exception)
{
@unlink($tmpfname);
return false;
}
if ($untar)
{
// Try to untar the file
$tadapter = self::getAdapter('tar');
if ($tadapter)
{
$result = $tadapter->extract($tmpfname, $extractdir);
}
}
else
{
$path = JPath::clean($extractdir);
$result = JFile::copy($tmpfname, $path . '/' . JFile::stripExt(basename(strtolower($archivename))), null, 1);
}
@unlink($tmpfname);
}
break;
default:
throw new InvalidArgumentException('Unknown Archive Type');
}
if (!$result || $result instanceof Exception)
{
return false;
}
return true;
}

+ Voici le graphe d'appel pour cette fonction :

static JArchive::getAdapter (   $type)
static

Get a file compression adapter.

Paramètres:
string$typeThe type of adapter (bzip2|gzip|tar|zip).
Renvoie:
JArchiveExtractable Adapter for the requested type
Depuis:
11.1
Exceptions:
UnexpectedValueException

Définition à la ligne 181 du fichier archive.php.

{
if (!isset(self::$adapters[$type]))
{
// Try to load the adapter object
$class = 'JArchive' . ucfirst($type);
if (!class_exists($class))
{
throw new UnexpectedValueException('Unable to load archive', 500);
}
self::$adapters[$type] = new $class;
}
return self::$adapters[$type];
}

Documentation des données membres

JArchive::$adapters = array()
staticprotected

Définition à la ligne 28 du fichier archive.php.


La documentation de cette classe a été générée à partir du fichier suivant :