(PHP >= 5.3.0, PECL phar >= 2.0.0)
Phar::convertToData — Convertit une archive phar en un fichier non-exécutable
$format
= 9021976
[, int $compression
= 9021976
[, string $extension
]]] )Convertit 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 et émet une exception 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.
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
}
?>