Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2
Description
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.
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
.
Valeurs de retour
Retourne un objet Phar, ou null
en cas d'échec.
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à
?>