(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::convertToData — Convertit une archive phar en un fichier non-exécutable
$format
= null
, ?int $compression
= null
, ?string $extension
= null
): ?PharDataConvertit une archive phar exécutable en un fichier tar ou zip. Pour rendre le tar ou le zip non exécutable, le conteneur phar et l'alias phar sont supprimés de l'archive nouvellement créée.
Si aucun changement n'est spécifié, cette méthode émet une exception BadMethodCallException si l'archive est dans le format de fichier phar. Pour les archives basées sur tar ou zip, cette méthode convertit l'archive en une archive non exécutable.
En cas de succès, la méthode crée une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas supprimée du disque, ce qui devrait être fait manuellement à la fin du procédé.
format
Ce doit être l'un des formats Phar::TAR
ou Phar::ZIP
. Si ce paramètre est null
,
le format de fichier actuel sera conservé.
compression
Ce doit être Phar::NONE
pour aucune compression globale,
Phar::GZ
la une compression basée sur zlib et
Phar::BZ2
pour une compression basée sur bzip2.
extension
Ce paramètre est utilisée pour écraser l'extension par défaut d'une
archive convertie. A noter que .phar
ne peut pas
être utilisé dans le nom de fichier d'une archive tar ou zip
non-exécutable.
Si on convertit vers une archive basée sur tar, les extensions par défaut sont
.tar
, .tar.gz
,
et .tar.bz2
selon la compression spécifiée.
Pour les archives phar basées sur zip, l'extension par
défaut est .zip
.
La méthode retourne un objet PharData en cas de succès,
ou null
en cas d'échec.
Cette méthode émet une exception BadMethodCallException si elle n'est pas capable de compresser, si une méthode de compression inconnue a été spécifiée ou si l'archive demandée a été mise en tampon avec Phar::startBuffering() sans être conclue avec Phar::stopBuffering(), et émet une exception PharException si un quelconque problème a été rencontré pendant la phase de création de l'archive.
Version | Description |
---|---|
8.0.0 |
format , compression ,
et extension sont désormais nullable.
|
Exemple #1 Un exemple avec Phar::convertToData()
Utilisons Phar::convertToData():
<?php
try {
$tarphar = new Phar('monphar.phar.tar');
// notez bien que monphar.phar.tar n'est *pas* effacé
// on convertit vers le format de fichier tar non exéctuable
// crée monphar.tar
$tar = $tarphar->convertToData();
// on convertit vers le format de fichier zip non exéctuable et crée monphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// crée monphar.tbz
$tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// crée monphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // émet une exception
} catch (Exception $e) {
// on traite les erreurs ici
}
?>