Phar::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'
Description
$compression
) : voidNote:
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. Utilisez 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ée pour tirer parti de cette fonctionnalité. De plus, si un ou des fichiers ont déjà été compressé en utilisant la compression bzip2/zlib, l'extension adéquate doit être activée pour décompresser les fichiers avant de les recompresser. extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. 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.
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(10) "monfichier.txt" bool(false) bool(false) bool(false) string(11) "monfichier2.txt" bool(false) bool(false) bool(false) string(10) "monfichier.txt" int(4096) bool(false) bool(true) string(11) "monfichier2.txt" int(4096) bool(false) bool(true)
Voir aussi
- PharFileInfo::getCompressedSize() - Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar
- PharFileInfo::isCompressed() - Retourne si l'entrée est compressée
- PharFileInfo::compress() - Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2
- PharFileInfo::decompress() - Décompresse l'entrée Phar courante au sein du phar
- Phar::canCompress() - Détermine si l'extension phar supporte une la compression en utilisant soit zip soit bzip2
- Phar::isCompressed() - Retourne Phar::GZ ou PHAR::BZ2 si l'archive entière est compressée (.tar.gz/tar.bz, etc)
- Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
- Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
- Phar::compress() - Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
- Phar::decompress() - Décompresse l'archive tar complète
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-phar.compressfiles.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.