Phar::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compressFiles â Compresse tous les fichiers de l'archive Phar courante
Description
public function Phar::compressFiles(
int $compression):
void
Note: Cette
méthode nécessite que la variable de configuration INI phar.readonly
soit définie à 0 pour fonctionner avec les objets Phar.
Sinon, une exception PharException sera lançée.
Pour les archives phar basées sur tar, cette méthode lÚve une exception
BadMethodCallException car la compression de fichier individuelle au sein
d'une archive tar n'est pas supportée par le format de fichier. Utiliser
Phar::compress() pour compresser une archive phar basée sur tar en entier.
Pour les extensions phar basées sur Zip, cette méthode compresse tous les fichiers de l'archive
Phar en utilisant la compression spécifiée.
Les extensions zlib ou bzip2
doivent ĂȘtre activĂ©es pour tirer parti de cette fonctionnalitĂ©. De plus, si un ou des fichiers
ont dĂ©jĂ Ă©tĂ© compressĂ©s en utilisant la compression bzip2/zlib, l'extension adĂ©quate doit ĂȘtre activĂ©e
pour décompresser les fichiers avant de les recompresser.
Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI
phar.readonly doit ĂȘtre Ă off pour fonctionner.
Liste de paramĂštres
compression
-
La compression doit ĂȘtre soit Phar::GZ,
soit Phar::BZ2 pour bénéficier de la compression, ou bien Phar::NONE
pour éliminer la compression.
Valeurs de retour
Aucune valeur n'est retournée.
Erreurs / Exceptions
LĂšve une exception BadMethodCallException si
la variable INI phar.readonly est Ă on,
si l'extension zlib
n'est pas disponible, ou si un ou des fichiers ont été compressés avec l'algorithme bzip2
et que l'extension bzip2 n'est pas activée.
Exemples
Exemple #1 Un exemple avec Phar::compressFiles()
<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>
L'exemple ci-dessus va afficher :
string(14) "monfichier.txt"
bool(false)
bool(false)
bool(false)
string(15) "monfichier2.txt"
bool(false)
bool(false)
bool(false)
string(14) "monfichier.txt"
int(4096)
bool(false)
bool(true)
string(15) "monfichier2.txt"
int(4096)
bool(false)
bool(true)