(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToData â Convertit une archive phar en une archive tar ou zip non-exĂ©cutable
$format = null, ?int $compression = null, ?string $extension = null): ?PharDataCette méthode est utilisée pour convertir une archive non exécutable tar ou zip en un autre format non-exécutable.
Si aucun changement n'est demandĂ©, cette mĂ©thode soulĂšve une exception BadMethodCallException. Cette mĂ©thode doit ĂȘtre utilisĂ©e pour convertir une archive tar au format zip et vice-versa. Bien qu'il soit possible de changer la compression d'une archive tar avec cette mĂ©thode, il est prĂ©fĂ©rable d'utiliser la mĂ©thode PharData::compress() pour rester cohĂ©rent au niveau de la logique.
En cas de succĂšs, cette mĂ©thode crĂ©e une nouvelle archive sur le disque et retourne un objet PharData. L'ancienne archive n'est pas effacĂ©e du disque, ceci devant ĂȘtre fait manuellement une fois le traitement terminĂ©.
format
Le format doit ĂȘtre Phar::TAR ou
Phar::ZIP. S'il vaut null, le format de fichier actuel sera conservé.
compression
La compression doit ĂȘtre Phar::NONE pour Ă©viter la compression de l'archive
complÚte, Phar::GZ pour la compression basée sur zlib, et
Phar::BZ2 pour la compression basée sur bzip.
extension
Ce paramÚtre est utilisé pour écraser l'extension de fichier par défaut de l'archive convertie. Notez
que .phar ne peut pas ĂȘtre utilisĂ© n'importe oĂč dans le nom de fichier d'une
archive tar ou zip non-exécutable.
En cas de conversion vers une archive phar 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 basées sur zip, l'extension par défaut est .zip.
Cette méthode retourne un objet PharData en cas de succÚs,
ou null en cas d'échec.
Cette méthode soulÚve une exception BadMethodCallException quand elle est incapable de compresser, quand une méthode de compression inconnue a été spécifiée, quand l'archive demandée est mise en tampon avec Phar::startBuffering() et qu'elle n'a pas été conclue avec Phar::stopBuffering(), et soulÚve une exception PharException si un quelconque problÚme est rencontré lors de la création du phar.
| Version | Description |
|---|---|
| 8.0.0 |
format, compression, et
extension sont désormais nullable.
|
Exemple #1 Un exemple avec PharData::convertToData()
Utilisons PharData::convertToData():
<?php
try {
$tarphar = new PharData('monphar.tar');
// notez que monphar.tar n'est *pas* effacé
// le convertir au format tar non-exécutable
// crée monphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// crée monphar.tbz
$tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// crée monphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // soulĂšve une exception
} catch (Exception $e) {
// les erreurs sont traitées ici
}
?>