Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
Description
$compression
[, string $extension
] ) : objectNote:
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.
Dans le cas des archives phar basées sur tar ou sur phar, cette méthode compresse l'archive complète en utilisant la compression gzip ou bzip2. Le fichier qui en résulte peut être traité avec la commande gzip/bzip2, ou accédée directement et de façon transparente avec l'extension Phar.
Dans le cas des archives phar basées sur Zip, cette méthode échoue en lançant une exception. L'extension zlib doit être activée pour compresser avec gzip, tandis que l'extension bzip2 doit être activée pour compresser avec bzip2. Comme avec toutes les fonctionnalités qui modifient le contenu d'un phar, la variable INI phar.readonly doit être à off pour fonctionner.
En plus, cette méthode renomme automatiquement l'archive, en suffisant son nom par .gz, .bz2 ou en enlevant l'extension si Phar::NONE est passée pour supprimer la compression. Sinon, une extension de fichier peut aussi être spécifiée en utilisant le second paramètre.
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.
-
extension
-
Par défaut, l'extension est .phar.gz ou .phar.bz2 pour compresser les archives phar, et .phar.tar.gz ou .phar.tar.bz2 pour compresser les archives tar. Pour décompresser, les extensions par défaut sont .phar et .phar.tar.
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 l'extension bzip2 n'est pas activée.
Exemples
Exemple #1 Un exemple avec Phar::compress()
<?php
$p = new Phar('/chemin/vers/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'salut';
$p['monfichier2.txt'] = 'salut';
$p1 = $p->compress(Phar::GZ); // copie vers /chemin/vers/mon.phar.gz
$p2 = $p->compress(Phar::BZ2); // copie vers /chemin/vers/mon.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /chemin/vers/mon.phar existe déjà
?>
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
- PharData::compress() - Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2
- 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::decompress() - Décompresse l'archive tar complète
- Phar::getSupportedCompression() - Retourne un tableau des algorithmes de compression supportés
- Phar::compressFiles() - Compresse tous les fichiers de l'archive Phar courante'
- Phar::decompressFiles() - Décompresse tous les fichiers de l'archive Phar courante
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-phar.compress.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.